412 Precondition Failed oznacza, że co najmniej jeden warunek w nagłówkach żądania okazał się fałszywy. Jest to wynik niespełnionego If-Match lub If-Unmodified-Since albo niespełnionego If-None-Match przy metodach innych niż GET i HEAD. Serwer nie wykonał żądanej operacji.
Głównym celem tego kodu jest zapobieganie utracie aktualizacji (optymistyczna kontrola współbieżności). Klient odczytuje zasób wraz z jego ETag, edytuje go i wysyła zmianę z If-Match i tym ETagiem. Jeśli w międzyczasie ktoś inny zmienił zasób, ETag już się nie zgadza i serwer odpowiada kodem 412, zamiast nadpisać cudzą zmianę. Kod ten stosuje się też z If-None-Match: *, aby utworzyć zasób tylko wtedy, gdy jeszcze nie istnieje.
Przy GET i HEAD fałszywy warunek If-None-Match lub If-Modified-Since skutkuje odpowiedzią 304 Not Modified, a nie 412.
Przykładowa odpowiedź
HTTP/1.1 412 Precondition Failed
Date: Fri, 06 Nov 2026 10:15:32 GMT
ETag: "v8"
Content-Type: application/json
Content-Length: 52
{"error":"If-Match does not match the current ETag"} SEO i sprawdzanie przekierowań
Typowe przyczyny i zastosowania
- Edycję odrzucono, bo zasób zmienił się po odczytaniu (niezgodny ETag).
If-None-Match: *zapobiegł nadpisaniu istniejącego pliku.- API magazynu w chmurze lub CDN otrzymało żądanie warunkowe z nieaktualnym ETagiem.