412 Precondition Failed का मतलब है कि रिक्वेस्ट हेडर की एक या ज़्यादा शर्तें गलत (false) निकलीं। यह फ़ेल हुए If-Match या If-Unmodified-Since का नतीजा है, या GET और HEAD के अलावा दूसरे मेथड पर फ़ेल हुए If-None-Match का। सर्वर ने मांगी गई कार्रवाई नहीं की।
इसका मुख्य मकसद अपडेट खोने से बचाना है (optimistic concurrency control)। क्लाइंट किसी रिसोर्स को उसके ETag के साथ पढ़ता है, उसे एडिट करता है और If-Match व उसी ETag के साथ बदलाव भेजता है। अगर इस बीच किसी और ने रिसोर्स बदल दिया, तो ETag मेल नहीं खाता, और सर्वर दूसरे बदलाव को ओवरराइट करने की जगह 412 लौटाता है। इसका इस्तेमाल If-None-Match: * के साथ भी होता है, ताकि रिसोर्स तभी बने जब वह पहले से मौजूद न हो।
GET और HEAD के लिए गलत निकला If-None-Match या If-Modified-Since 412 नहीं, बल्कि 304 Not Modified देता है।
उदाहरण रिस्पॉन्स
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 और रीडायरेक्ट जांच
आम वजहें और इस्तेमाल
- एक एडिट रिजेक्ट हो गया, क्योंकि पढ़े जाने के बाद रिसोर्स बदल गया था (ETag मेल नहीं खाया)।
If-None-Match: *ने किसी मौजूदा फ़ाइल को ओवरराइट होने से रोक दिया।- किसी क्लाउड स्टोरेज या CDN API को पुराने ETag के साथ कंडीशनल रिक्वेस्ट मिली।