Operatività

no-store non è no-cache

no-store sulla risposta vieta di memorizzare. no-cache senza argomenti vieta di riusare senza una validazione riuscita. private è una terza frase. Nessuna è un sigillo di privacy.

5 min di lettura

no-store non è no-cache
In questa guida (6)
  1. 1Due divieti diversi
  2. 2Cosa vuol dire «non memorizzare»
  3. 3La direttiva sulla richiesta non cancella la copia già fatta
  4. 4private e must-understand
  5. 5Errori da evitare
  6. 6In sintesi

Cache-Control: no-store non è no-cache. Nell’RFC 9111, giugno 2022, riletto il 19 ottobre 2026, no-store sulla risposta vieta di memorizzare. no-cache senza argomenti vieta di riusare senza una validazione riuscita. Si può tenere la copia e chiedere conferma. Non è la stessa frase. L’RFC rende obsoleto l’RFC 7234. Autori: Roy T. Fielding, Mark Nottingham, Julian Reschke.

In breve: no-store vale per cache private e condivise, e non è un meccanismo di privacy. no-cache non significa «non salvare». private è una terza direttiva: la cache condivisa non memorizza, quella privata può. must-understand, in certi casi, fa ignorare no-store. Non è l’HTTP 429.

Due divieti diversi

Sezione 5.2.2.4, forma senza argomenti: la risposta MUST NOT essere usata per soddisfare un’altra richiesta senza inoltrarla per la validazione e senza ricevere una risposta riuscita. Il server può così impedire l’uso anche alle cache configurate per consegnare risposte stantie. La copia può esistere. Non può essere servita alla cieca.

La forma con argomenti, una lista di nomi di campi, è un’altra regola: la cache MAY riusare la risposta, se quei campi sono esclusi dalla risposta successiva oppure se la risposta è stata rivalidata con successo. I nomi non sono limitati ai campi di questo RFC e non distinguono maiuscole e minuscole. Il mittente SHOULD NOT mandare la forma a token: va la quoted-string. La nota dell’RFC è secca: spesso le cache trattano la forma qualificata come se fosse quella senza argomenti. La gestione speciale non è molto implementata. Chi conta su no-cache="Set-Cookie" sta citando una frase che l’RFC stesso dice poco applicata.

Sezione 5.2.2.5: no-store sulla risposta indica che una cache MUST NOT memorizzare alcuna parte della richiesta immediata né della risposta, e MUST NOT usare la risposta per soddisfare un’altra richiesta. Non c’è la scappatoia della rivalidazione. Il divieto è non avere la copia.

DirettivaSezioneLa cache può tenere la risposta?
no-cache senza argomenti5.2.2.4Sì, ma non la serve senza validazione riuscita
no-store sulla risposta5.2.2.5No: non memorizza e non riusa
private senza argomenti5.2.2.7La cache condivisa no. Quella privata può
no-store sulla richiesta5.2.1.5Non memorizza questa richiesta né la sua risposta. Non tocca una copia già in cache

Cosa vuol dire «non memorizzare»

La stessa sezione glossa il MUST NOT store: la cache non deve memorizzare l’informazione di proposito in uno storage non volatile, e deve fare un tentativo ragionevole di toglierla dallo storage volatile il prima possibile dopo averla inoltrata. Vale per le cache private e per quelle condivise.

Il capoverso successivo toglie l’illusione: la direttiva non è un meccanismo affidabile né sufficiente per la privacy. Cache malevole o compromesse possono non riconoscerla. La rete può essere intercettata. Mettere no-store su una pagina di login non sostituisce TLS, e non è una prova che il disco del proxy sia pulito.

La direttiva sulla richiesta non cancella la copia già fatta

Sulla richiesta, sezione 5.2.1.4, no-cache indica una preferenza del client: non usare una risposta memorizzata senza validazione riuscita sull’origine. Non è un ordine di cancellazione.

no-store sulla richiesta, sezione 5.2.1.5, è più stretto: la cache MUST NOT memorizzare alcuna parte di questa richiesta né di alcuna risposta a essa. Stessa glossa su volatile e non volatile, stessa frase sulla privacy. Poi l’eccezione che si dimentica: se la richiesta viene soddisfatta da una cache, la direttiva no-store della richiesta non si applica alla risposta già memorizzata. Il client che manda no-store non sta svuotando la cache. Sta dicendo di non creare una copia nuova di questo giro. Se la copia c’era, l’RFC non la fa cancellare da questa richiesta.

private e must-understand

private senza argomenti, sezione 5.2.2.7: una cache condivisa MUST NOT memorizzare la risposta, perché è intesa per un solo utente. Una cache privata MAY memorizzarla, nei limiti della sezione 3, anche se altrimenti non sarebbe memorizzabile in modo euristico. Non è no-store: il browser dell’utente può tenere la copia. Il proxy condiviso no.

must-understand, sezione 5.2.2.3, limita la memorizzazione alle cache che capiscono e rispettano i requisiti di quello status code. Una risposta che la contiene SHOULD contenere anche no-store. Quando una cache che implementa must-understand la riceve, SHOULD ignorare no-store se capisce e implementa i requisiti di cache di quello status. La sezione 5.2.2.5 lo richiama: in quelle circostanze must-understand scavalca no-store. Un no-store accanto a must-understand non è, per quelle cache, il divieto che sembra.

Niente di questo è il 429 con Retry-After, e niente è la bfcache del browser. Sono altri meccanismi, già raccontati a parte. Il cluster è Operatività.

Errori da evitare

  • Leggere no-cache come «non scrivere su disco». L’RFC vieta il riuso senza validazione, non la memorizzazione.

  • Credere che no-store renda la risposta privata. L’RFC dice il contrario, in entrambe le sezioni, richiesta e risposta.

  • Mandare no-store nella richiesta per cancellare una risposta già in cache. Se la cache soddisfa la richiesta, la direttiva non si applica a quella copia.

  • Contare sulla forma no-cache="Nome-Campo". La nota dice che spesso viene trattata come la forma senza argomenti.

  • Ignorare must-understand. Per una cache che lo implementa, no-store sulla stessa risposta può essere ignorato.

In sintesi

RFC 9111, giugno 2022: no-cache senza argomenti permette di tenere la risposta e vieta di servirla senza una validazione riuscita. no-store vieta di memorizzare richiesta e risposta e di riusarle. private ferma la cache condivisa, non quella privata. no-store sulla richiesta non cancella ciò che era già memorizzato. Non è un sigillo di privacy e non è un 429.

Foto di copertina: Esquilo, «PDC server room», Wikimedia Commons, CC BY-SA 3.0. È una sala macchine, non un diagramma di Cache-Control.

Domande frequenti

No. RFC 9111, sezione 5.2.2.4, riletto il 19 ottobre 2026: senza argomenti, la risposta non si usa per un’altra richiesta senza inoltrarla e ricevere una validazione riuscita. La copia può esistere.
No. Le sezioni 5.2.2.5 e 5.2.1.5 dicono che non è un meccanismo affidabile. Una cache compromessa può ignorarlo, e la rete può essere intercettata.
No. Sezione 5.2.1.5: se la richiesta è soddisfatta da una cache, la direttiva non si applica alla risposta già memorizzata.
Sì, per chi lo implementa. Sezione 5.2.2.3: la cache SHOULD ignorare no-store se capisce i requisiti di cache di quello status code. La risposta con must-understand SHOULD contenere anche no-store.
No. Retry-After su un 429 è un altro header e un altro articolo. private, a sua volta, ferma solo la cache condivisa.

Potrebbe interessarti anche...

Hai bisogno di scegliere una webagency per il tuo progetto?

Abbiamo la soluzione giusta

Parliamone
  • Consulenza specializzata
  • Soluzioni su misura
  • Risultati concreti

Tecnologialiberaper tutti

Hai bisogno d'aiuto?

Parla con noi. Il nostro supporto è attivo tutti i giorni dalle 9 alle 18

+390835239514 Chiamaci

Crea il tuo eCommerce

Creiamo eCommerce su misura senza farti spendere un patrimonio

info@roxxoitalia.com Scopri il nostro CMS

Crea il tuo sito web

Siti web già pronti per andare online. Vuoi saperne di più? Contattaci

info@roxxoitalia.com Scrivici