Risposte:
Cache-Control
è stato introdotto in HTTP / 1.1 e offre più opzioni di Expires
. Possono essere utilizzati per ottenere lo stesso risultato, ma il valore dei dati Expires
è una data HTTP, mentre Cache-Control
max-age consente di specificare un periodo di tempo relativo in modo da poter specificare "X ore dopo la richiesta della pagina".
Il controllo della cache HTML è una domanda molto simile e ha un buon collegamento a un tutorial di cache che dovrebbe rispondere alla maggior parte delle domande (ad esempio, http://www.mnot.net/cache_docs/#EXPIRES ). Per riassumere, tuttavia, Expires
è consigliato per risorse statiche come le immagini e Cache-Control
quando è necessario un maggiore controllo su come viene eseguita la memorizzazione nella cache.
Se si utilizza un CDN (Cloud Delivery Network), si consiglia di utilizzare Cache-Control con un tempo massimo in secondi. Ad esempio Cache-Control: max-age = 604800. Ciò impedisce picchi di richieste al server di origine: con "Scadenza mer, 30 ott 20xx 04:37:07 GMT" tutti i browser ti richiederanno contemporaneamente.
cache-control
. Quindi non vedo perché ci sarebbero picchi di richieste quando si utilizzaExpires:
Secondo questo articolo di Google Developers, HTTP Caching :
L'intestazione Cache-Control è stata definita come parte della specifica HTTP / 1.1 e sostituisce le intestazioni precedenti (ad esempio Scadenza) utilizzate per definire i criteri di memorizzazione nella cache delle risposte. Tutti i browser moderni supportano Cache-Control, quindi è tutto ciò di cui avremo bisogno.
Il controllo della cache è stato definito in HTTP / 1.1, indica a tutti i meccanismi di memorizzazione nella cache dal server al client se è possibile memorizzare nella cache questo oggetto. Viene misurata in secondi: Cache-Control: max-age=3600
.
Il Expires
campo di intestazione indica la data / ora dopo la quale la risposta è considerata obsoleta. Il valore Scade è un HTTP-date timestamp: Expires: Tue, 18 Jul 2017 16:07:23 GMT
.
Se una risposta include un Cache-Control
campo con la max-age
direttiva, un destinatario DEVE ignorare il Expires
campo.
Heroku devcenter ha un eccellente articolo su questo argomento.
Citando da esso,
Mentre l'intestazione Cache-Control attiva la memorizzazione nella cache sul lato client e imposta la durata massima di una risorsa, l'intestazione Expires viene utilizzata per specificare un punto specifico nel tempo in cui la risorsa non è più valida.
Ad eccezione delle opzioni private / pubbliche di CC, non vedo alcuna differenza. Quando si utilizza Scade come "accesso più 1 anno / mese / settimana / giorno", funziona esattamente allo stesso modo di CC.
Se sei ancora interessato, lascio questa raccomandazione direttamente dai ragazzi di Google. https://developers.google.com/speed/docs/insights/LeverageBrowserCaching Preferiscono scade prima di Cache-Control