Signification
Le serveur exige que la requête soit conditionnelle (If-Match, etc.) pour éviter les mises à jour perdues.
Causes courantes
- PUT ou PATCH sans If-Match sur une API qui impose le verrouillage optimiste
Comment corriger
Côté client ou visiteur
Faites un GET de la ressource, récupérez son ETag et envoyez-le dans If-Match avec votre mise à jour.
Côté propriétaire du site ou de l’API
Expliquez dans le corps quel en-tête est requis.
Exemple de réponse
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."
} Spécification
FAQ
› Pourquoi une API exigerait-elle If-Match ?
Pour éviter que deux clients écrasent mutuellement leurs modifications sans s'en rendre compte.
› 428 ou 412 ?
428 : aucune précondition n'a été envoyée. 412 : une précondition a été envoyée mais a échoué.