HTP-020 · Erros do cliente (4xx)
428 Precondition Required
Sem If-Match não tem conversa: o código que previne a atualização perdida.
Dois clientes leem o mesmo recurso, os dois escrevem, e o segundo apaga sem saber o que o primeiro fez — o lost update. A RFC 6585 criou o 428 para o servidor exigir pedidos condicionais: mande de novo, mas com If-Match e o ETag da versão que você leu.
APIs REST cuidadosas o devolvem em PUT e PATCH sem precondição. É o servidor dando aula de concorrência ao cliente, um erro de cada vez — e um dos poucos códigos cuja presença indica capricho de quem o emite.
HTTP/1.1 428 Precondition Required
Content-Type: application/json
{"error": "PUT requires If-Match"}