428 Precondition Required (RFC 6585) oznacza, że serwer źródłowy wymaga, by żądanie było warunkowe. Zapobiega to problemowi „utraconej aktualizacji”: klient odczytuje zasób, modyfikuje go i zapisuje z powrotem metodą PUT, nadpisując zmiany, które ktoś inny wprowadził w międzyczasie.
Odpowiadając kodem 428 na bezwarunkowe zapisy, serwer zmusza klientów do wysyłania If-Match z odczytanym wcześniej ETag. Jeśli zasób się zmienił, żądanie warunkowe kończy się wtedy błędem 412 Precondition Failed, zamiast po cichu nadpisać dane. Odpowiedź powinna wyjaśniać, jak ponownie wysłać żądanie, aby się powiodło.
Przykładowa odpowiedź
HTTP/1.1 428 Precondition Required
Date: Fri, 06 Nov 2026 10:15:32 GMT
Content-Type: application/json
Content-Length: 71
{"error":"Send If-Match with the current ETag to update this resource"} SEO i sprawdzanie przekierowań
Brak wpływu na SEO: kod 428 dotyczy żądań zapisu w API i przy wspólnej edycji, a żądania GET wysyłane przez roboty go nie wywołują.
Typowe przyczyny i zastosowania
- API wymaga
If-MatchprzyPUT,PATCHlubDELETE, a klient go nie wysłał. - Usługa do wspólnej edycji dokumentów wymusza blokowanie optymistyczne.
- Biblioteka klienta bez obsługi ETagów komunikuje się z takim API.