Ý nghĩa
Máy chủ yêu cầu yêu cầu phải có điều kiện (If-Match v.v.) để tránh mất cập nhật.
Nguyên nhân thường gặp
- PUT hoặc PATCH không có If-Match trên API bắt buộc khóa lạc quan
Cách khắc phục
Nếu bạn là máy khách hoặc người truy cập
GET tài nguyên, lấy ETag của nó và gửi trong If-Match cùng bản cập nhật.
Nếu bạn quản lý trang web hoặc API
Giải thích trong phần thân header nào là bắt buộc.
Phản hồi mẫu
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."
} Đặc tả
Câu hỏi thường gặp
› Vì sao API bắt buộc If-Match?
Để hai client không vô tình ghi đè thay đổi của nhau mà không hay biết.
› 428 hay 412?
428: không gửi điều kiện nào. 412: có gửi nhưng không thỏa.