3. 428 Precondizione richiesta (Precondition Required)
Il codice di stato 428 indica che il server di origine richiede che la richiesta sia condizionale.
Il suo uso tipico è evitare il problema dell'"aggiornamento perso", in cui un client effettua una GET dello stato di una risorsa, lo modifica e lo reinvia al server tramite PUT, mentre nel frattempo una terza parte ha modificato lo stato sul server, causando un conflitto. Richiedendo che le richieste siano condizionali, il server può assicurarsi che i client stiano lavorando con le copie corrette.
Le risposte che utilizzano questo codice di stato dovrebbero (SHOULD) spiegare come inviare nuovamente la richiesta con successo. Ad esempio:
HTTP/1.1 428 Precondition Required
Content-Type: text/html
<html>
<head>
<title>Precondition Required</title>
</head>
<body>
<h1>Precondition Required</h1>
<p>This request is required to be conditional;
try using "If-Match".</p>
</body>
</html>
Le risposte con il codice di stato 428 non devono (MUST NOT) essere memorizzate da una cache.