Innehåll

    Serversvar 428 Precondition Required

    HTTP-statuskod 428 (Precondition Required)

    HTTP-statuskod 428 används för att indikera att servern kräver att vissa villkor uppfylls innan en begäran kan behandlas. Detta statuskod kan uppstå i olika situationer, särskilt vid interaktion med API:er, där det är viktigt att ta hänsyn till tidigare tillstånd av resurser.

    428 - Precondition Required

    Exempel på användning av statuskod 428

    • Ändring av resurser:

      Om en klient försöker uppdatera en resurs utan att ange nödvändiga villkor kan servern returnera statuskod 428. Det kan exempelvis hända om resurser har ändrats av en annan klient.

    • Versionskontroll:

      När en klient försöker ta bort eller ändra en resurs, måste den ange att den arbetar med den aktuella versionen av resursen, till exempel genom att använda headern If-Match. Om denna header inte anges kan statuskod 428 returneras.

    • Cache och tillstånd:

      Om en klient begär data som kan ha ändrats, men inte anger att den är beredd att arbeta med endast aktuella data (till exempel genom headern If-None-Match), kan servern kräva villkor för att undvika att tillhandahålla föråldrad information.

    Praktiska exempel på hur man åtgärdar statuskod 428

    Nedan följer exempel på hur man kan hantera statuskod 428 i olika programmeringsspråk:

    Språk Exempel
    JavaScript
    
    const url = 'https://api.example.com/resource';
    const headers = new Headers({
        'If-Match': 'etag_value' // Ange ETag för versionskontroll
    });
    
    fetch(url, {
        method: 'PUT',
        headers: headers,
        body: JSON.stringify({ data: 'new data' })
    })
    .then(response => {
        if (response.status === 428) {
            console.error('Villkor krävs för att utföra begäran.');
        }
    });
                
    Python
    
    import requests
    
    url = 'https://api.example.com/resource'
    headers = {
        'If-Match': 'etag_value'  # Ange ETag för versionskontroll
    }
    
    response = requests.put(url, headers=headers, json={'data': 'new data'})
    if response.status_code == 428:
        print('Villkor krävs för att utföra begäran.')
                
    PHP
    
    $url = 'https://api.example.com/resource';
    $options = [
        'http' => [
            'header' => "If-Match: etag_value\r\n", // Ange ETag för versionskontroll
            'method' => 'PUT',
            'content' => json_encode(['data' => 'new data']),
        ],
    ];
    
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    if ($http_response_header[0] === 'HTTP/1.1 428 Precondition Required') {
        echo 'Villkor krävs för att utföra begäran.';
    }
                

    I denna artikel har vi utforskat de grundläggande aspekterna av HTTP-statuskod 428, dess praktiska exempel och hur man kan åtgärda eventuella fel i koden på olika programmeringsspråk. Att förstå och korrekt hantera denna statuskod är avgörande för effektiv kommunikation mellan klient och server.