428 Precondition Required (RFC 6585) indica che il server di origine richiede che la richiesta sia condizionale. Serve a evitare il problema del cosiddetto “aggiornamento perso”: un client legge una risorsa, la modifica e la riscrive con PUT, sovrascrivendo le modifiche fatte nel frattempo da qualcun altro.
Rispondendo 428 alle scritture non condizionali, il server costringe i client a inviare If-Match con l’ETag che hanno letto. Se la risorsa è cambiata, la richiesta condizionale fallisce con 412 Precondition Failed invece di sovrascrivere i dati senza avvisare. La risposta dovrebbe spiegare come inviare di nuovo la richiesta con successo.
Esempio di risposta
HTTP/1.1 428 Precondition Required
Date: Fri, 06 Nov 2026 10:15:32 GMT
Content-Type: application/json
Content-Length: 71
{"error":"Send If-Match with the current ETag to update this resource"} SEO e verifica dei redirect
Nessun impatto sulla SEO: il 428 riguarda le richieste di scrittura nelle API e nell’editing collaborativo, e le richieste GET dei crawler non lo provocano.
Cause comuni e casi d’uso
- Un’API richiede
If-MatchsuPUT,PATCHoDELETEe il client non l’ha inviato. - Un servizio di documenti collaborativi impone il blocco ottimistico.
- Una libreria client senza supporto per gli ETag comunica con un’API di questo tipo.