304

Not Modified

Ufficiale
La risorsa non deve essere ritrasmessa perché non è avvenuta alcuna modifica.

Specifica del codice di stato HTTP 304

Il codice di stato 304 Not Modified indica che è stata ricevuta una richiesta condizionale GET o HEAD che avrebbe dato luogo a una risposta 200 (OK) se non fosse che la condizione è stata valutata falsa. In altre parole, non è necessario che il server trasferisca una rappresentazione della risorsa di destinazione perché la richiesta indica che il client, che ha formulato la richiesta condizionata, dispone già di una rappresentazione valida; il server sta quindi reindirizzando il client a fare uso di tale rappresentazione memorizzata come se fosse il contenuto di una risposta 200 (OK).

Il server che genera una risposta 304 Not Modified DEVE generare uno dei seguenti campi di intestazione che sarebbero stati inviati in una risposta 200 (OK) alla stessa richiesta:

  1. Content-Location, Date, ETag e Vary
  2. Cache-Control e Expires (vedi [CACHING])

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

I requisiti di una cache che riceve una risposta 304 Not Modified sono definiti nella Sezione 4.3.4 di [CACHING]. Se la richiesta condizionale ha origine da un client in uscita, ad esempio un interprete con una propria cache che invia una GET condizionale a un proxy condiviso, il proxy DOVREBBE inoltrare la risposta 304 Not Modified a quel client.

Una risposta 304 Not Modified termina con la fine della sezione dell'intestazione; non può contenere contenuto o trailer.

Fonte / Citazione da: Il codice di stato HTTP 304 Not Modified è specificato dalla sezione 15.4.5 di RFC9110.

Protocollo HTTP

lavori in corso

Come lanciare un codice di stato 304 con PHP?

Per lanciare il codice di stato HTTP 304 su una pagina web, si può usare la funzione PHP http_response_code. La sintassi è la seguente: http_response_code(304) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Test del codice di stato HTTP 304

Per poter visualizzare il codice di stato HTTP (in questo caso 304 Not Modified) e altre informazioni sul lato client, è necessario aprire la console di sviluppo con F12. Quindi navigare nella scheda "Rete". Ora la pagina può essere aperta, il sito web (ad esempio index.php) dovrebbe essere visibile nella scheda Rete. Questo deve essere selezionato e poi deve essere selezionata la sezione Herder. L'utente vedrà quindi il seguente risultato:

Codice di stato 304 Not Modified
Panoramica
URL: https://http-statuscode.com/errorCodeExample.php?code=304
Stato: 304 Not Modified
Quelle: Network
Indirizzo IP: XX.XX.XX.XX
Codice di stato 304 Not Modified

Compatibilità con i browser del codice di stato 304

Chrome Yes
Edge Yes
Firefox Yes
Opera Yes
Safari Yes
Chrome Android Yes
Firefox for Android Yes
Opera Android Yes
Safari on iOS Yes
Internet Yes
WebView Android Yes

Costanti nei linguaggi di programmazione

http.StatusNotModified
Response::HTTP_NOT_MODIFIED
:not_modified

Articoli del blog

Caching e codici di stato HTTP: Ottimizzare le prestazioni del web attraverso una cache intelligente

Le prestazioni del web e la conseguente esperienza dell'utente sono aspetti centrali per il successo di qualsiasi sito web. Un fattore significativo che influisce su queste prestazioni sono i codic...

Autore: Tony Brüser
Autore: Tony Brüser

Tony Brüser è un entusiasta sviluppatore web con una predilezione per i codici di stato HTTP.

LinkedInGitHub