412 Precondition Failed, istek başlıklarındaki bir veya daha fazla koşulun yanlış (false) sonuç verdiği anlamına gelir. Başarısız bir If-Match veya If-Unmodified-Since ya da GET ve HEAD dışındaki metotlarda başarısız bir If-None-Match sonucunda ortaya çıkar. Sunucu istenen işlemi gerçekleştirmemiştir.
Temel amacı kayıp güncellemeleri önlemektir (iyimser eşzamanlılık denetimi). Bir istemci bir kaynağı ETag değeriyle birlikte okur, düzenler ve değişikliği If-Match ve bu ETag ile gönderir. Bu arada başka biri kaynağı değiştirmişse ETag artık eşleşmez ve sunucu diğer değişikliğin üzerine yazmak yerine 412 ile yanıt verir. Ayrıca bir kaynağı yalnızca henüz mevcut değilse oluşturmak için If-None-Match: * ile birlikte de kullanılır.
GET ve HEAD için yanlış çıkan bir If-None-Match veya If-Modified-Since, 412 değil, 304 Not Modified üretir.
Örnek yanıt
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 ve yönlendirme kontrolü
Yaygın nedenler ve kullanım alanları
- Kaynak okunduktan sonra değiştiği için bir düzenleme reddedildi (ETag uyuşmazlığı).
If-None-Match: *, mevcut bir dosyanın üzerine yazılmasını engelledi.- Bir bulut depolama veya CDN API'si, güncelliğini yitirmiş bir ETag içeren koşullu bir istek aldı.