Cosa succede se non si imposta l'intestazione controllo cache?


13

Cosa succede se non si imposta l' cache-controlintestazione? HTTP specifica un comportamento predefinito che i client dovrebbero seguire o spetta ai client decidere?

In Chrome, ho visto alcune richieste Javascript che non cache-controlpresentano intestazioni come 200 (from disk cache). Chrome lo sta ottimizzando?

In IE, l'ho visto apparire come a 304 (not modified).

Come posso capirlo meglio?


1
"nessuna intestazione cache" significa nessuna intestazione Cache-Control o davvero nessuna intestazione cache? Il controllo della cache non è l'unica intestazione che influisce sulla memorizzazione nella cache. La maggior parte dei server Web invierà intestazioni Ultima modifica per risorse statiche come i file Javascript.
Tim Fountain,

Risposte:


18

Se non è presente alcuna Cache-Controlintestazione e nessuna Expiresintestazione, ma esiste Last-Modifiedun'intestazione (che la maggior parte dei server Web invia per impostazione predefinita per le risorse statiche), la maggior parte dei browser utilizzerà l' aggiornamento euristico per determinare per quanto tempo memorizzare nella cache quella risorsa.

Il calcolo tipico per questo (che è quello suggerito da RFC 7234 ) è:

(current time - last modified time) / 10

Quindi, ad esempio, se l'ora dell'ultima modifica di un'immagine indica che è stata modificata l'ultima volta 60 giorni fa, un browser potrebbe decidere che potrebbe ragionevolmente utilizzare la versione memorizzata nella cache locale di quell'immagine per 6 giorni prima di cercare una nuova versione.

Si noti che nella maggior parte dei casi, se si preme refresh, si sta dicendo al browser di recuperare una versione nuova, quindi in quella situazione questa logica non si applicherebbe.


1
E se non ci sono Last-Modifiedintestazioni?
bertonc96,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.