Come identificata, non -cache non significa che non c'è mai il caching, ma piuttosto che l'user agent deve sempre chiedere al server se è OK usare quello che ha memorizzato nella cache. Al contrario, nessun negozio dice che non tiene nemmeno una copia, il che significa che non c'è nulla da chiedere. Se conosci la risposta a "Posso riutilizzare questo?" è sempre no, si ottiene un incremento delle prestazioni di (1) ignorando il sovraccarico di chiedere e (2) di non scaricare un eventuale risultato memorizzato riutilizzabile per fare spazio al nuovo risultato mai riutilizzato.
Oltre alle prestazioni, c'è una differenza di comportamento con la cronologia del browser . La sezione specifica HTTP 1.1, 13.13, dice che "il tempo di scadenza non si applica ai meccanismi di cronologia". L'intestazione no-cache descrive la scadenza e pertanto non si applica ai meccanismi della cronologia come il pulsante Indietro. Pertanto, l'utente può navigare indietro a una pagina precedente con no-cache senza che il server venga contattato.
L'intestazione di no-store, d'altra parte, impedisce che i dati vengano memorizzati al di fuori di una sessione, nel qual caso semplicemente non è disponibile per un meccanismo di cronologia da utilizzare. Con no-store, se l'utente termina la sessione navigando verso un altro dominio e poi torna indietro, l'unico modo per il browser di sapere cosa visualizzare è quello di ottenere di nuovo la pagina iniziale dal server.
Ecco come un Chromium issue su questo argomento fa la distinzione:
no-cache non significa "non cache questa" (che sarebbe no-store). no-cache significa che non lo si usa per i carichi normali a meno che la risorsa non venga riconvalidata per la freschezza. Le navigazioni storiche non sono carichi normali.
fonte
2017-07-08 00:18:49
e se la risposta memorizzata nella cache non ha 'Last-Modified' né' ETag'? – vtortola
Penso che in questo caso la risposta non verrà memorizzata nella cache. –
Ecco come interpreto RFC. (Aggiunto snippet) –