ماذا يعني
يتطلب الخادم أن يكون الطلب مشروطًا (If-Match وما شابه) لمنع ضياع التحديثات.
الأسباب الشائعة
- PUT أو PATCH دون If-Match على واجهة تفرض القفل المتفائل
طريقة الإصلاح
إن كنت العميل أو الزائر
اجلب المورد بـ GET، وخذ الـ ETag الخاص به، وأرسله في If-Match مع تحديثك.
إن كنت مسؤولًا عن الموقع أو الواجهة البرمجية
اشرح في الجسم الترويسة المطلوبة.
مثال على الاستجابة
HTTP/1.1
HTTP/1.1 428 Precondition Required
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Content-Type: application/problem+json
{
"type": "about:blank",
"title": "Precondition Required",
"status": 428,
"detail": "Send If-Match with the ETag you last read."
} المواصفة
الأسئلة الشائعة
› لماذا تتطلب واجهة ما If-Match؟
لمنع عميلين من الكتابة فوق تغييرات أحدهما الآخر دون أن يلاحظا.
› 428 أم 412؟
428: لم يُرسل أي شرط مسبق. 412: أُرسل شرط لكنه فشل.