Passa al contenuto principale

4. Status Code Definitions (Definizioni dei codici di stato)

4.1. 304 Not Modified (Non modificato)

Il codice di stato 304 (Not Modified) indica che una richiesta GET o HEAD condizionale è stata ricevuta e avrebbe portato a una risposta 200 (OK) se non fosse per il fatto che la condizione è stata valutata come false. In altre parole, non è necessario che il server trasferisca una rappresentazione della risorsa di destinazione perché la richiesta indica che il client, che ha reso la richiesta condizionale, ha già una rappresentazione valida; il server sta quindi reindirizzando il client a utilizzare quella rappresentazione memorizzata come se fosse il payload di una risposta 200 (OK).

Il server che genera una risposta 304 DEVE generare uno qualsiasi dei seguenti campi di intestazione che sarebbero stati inviati in una risposta 200 (OK) alla stessa richiesta: Cache-Control, Content-Location, Date, ETag, Expires e Vary.

Poiché l'obiettivo di una risposta 304 è minimizzare il trasferimento di informazioni quando il destinatario ha già una o più rappresentazioni in cache, un mittente NON DOVREBBE generare metadati di rappresentazione diversi dai campi elencati sopra a meno che tali metadati esistano allo scopo di guidare gli aggiornamenti della cache (ad esempio, Last-Modified potrebbe essere utile se la risposta non ha un campo ETag).

I requisiti per una cache che riceve una risposta 304 sono definiti nella Sezione 4.3.4 di [RFC7234]. Se la richiesta condizionale ha avuto origine da un client in uscita, come un agente utente con la propria cache che invia un GET condizionale a un proxy condiviso, allora il proxy DOVREBBE inoltrare la risposta 304 a quel client.

Una risposta 304 non può contenere un corpo del messaggio; è sempre terminata dalla prima riga vuota dopo i campi di intestazione.

4.2. 412 Precondition Failed (Precondizione fallita)

Il codice di stato 412 (Precondition Failed) indica che una o più condizioni fornite nei campi di intestazione della richiesta sono state valutate come false quando testate sul server. Questo codice di risposta consente al client di porre precondizioni sullo stato corrente della risorsa (le sue rappresentazioni e metadati correnti) e, quindi, impedire l'applicazione del metodo di richiesta se la risorsa di destinazione è in uno stato inaspettato.