2010-08-16 14 views
106

Puoi descrivere un esempio che indica la differenza tra Cache-Control pubblico e privato nelle applicazioni asp.net ospitate in IIS.Private vs Public in Cache-Control

ho letto in MSDN che la differenza è la seguente:

pubblici: Imposta Cache-Control: pubbliche per specificare che la risposta è memorizzabile nella cache dai clienti e condivise cache (proxy).

Privato: Valore predefinito. Imposta Cache-Control: private per specificare che la risposta è memorizzabile nella cache solo sul client e non dalle cache condivise (server proxy).

Non sono sicuro di aver completamente compreso i pro ei contro di ogni scelta. Un esempio per quando o non usarlo sarebbe fantastico.

Ad esempio, cosa devo fare se ho due server Web che ospitano la stessa applicazione? C'è qualcosa a cui prestare attenzione se scelgo Private o Public?

risposta

184

L'unica differenza è che con Private non si consente ai proxy di memorizzare nella cache i dati che viaggiano attraverso di essi. Alla fine, tutto si riduce ai dati contenuti nelle pagine/file che stai inviando.

Ad esempio, il proprio ISP potrebbe disporre di un proxy invisibile tra l'utente e Internet, ovvero la memorizzazione nella cache delle pagine Web per ridurre la quantità di larghezza di banda necessaria e ridurre i costi. Usando il controllo della cache: privato, si specifica che non dovrebbe memorizzare nella cache la pagina (ma consentire all'utente finale di farlo). Se si utilizza il controllo della cache: public, si sta dicendo che per tutti è consentito memorizzare nella cache la pagina e quindi il proxy ne terrebbe una copia.

Come regola generale, se si tratta di qualcosa di tutti può accedere (ad esempio, il logo di questa pagina) cache-control: pubblico potrebbe essere migliore, perché più la gente che la cache, meno larghezza di banda' Ho bisogno. Se si tratta di qualcosa che è correlato all'utente connesso (ad esempio, l'HTML in questa pagina include il mio nome utente, quindi non sarà utile a nessun altro) controllo della cache: privato sarà migliore, poiché i proxy inseriranno i dati nella cache che non verrà richiesto da altri utenti e potrebbero anche contenere dati che non si desidera conservare nei server di cui non si ha fiducia.

E, ovviamente, tutto ciò che non è pubblico dovrebbe avere un cache privata. Altrimenti i dati potrebbero essere archiviati in un server proxy intermedio, se fosse accessibile a chiunque abbia accesso ad esso.

+31

L'unica differenza è che con Private non si sta ** permettendo ai proxy di memorizzare nella cache ... Suppongo che sia stato un refuso. +1 sulla risposta a parte questo. Vale la pena aggiungere che il privato non offre alcun livello di sicurezza, può ancora essere visto dagli agenti nel mezzo. Significa solo che nessun agente "onesto" lo darà a qualcun altro invece di una risposta appena generata. –

+0

corretto! È divertente perché ho riletto alcune volte prima di postare, ma credo che sapevo che il "non" doveva essere lì, quindi la mia mente l'ha appena aggiunto: D. E sì, +1 al tuo commento, perché dovrebbe essere notato che, sebbene raccomandato per i dati relativi all'utente, privato non sostituirà la vera sicurezza (SSL). – salgiza

+0

È così facile scrivere "non" quando non si dovrebbe o ometterlo quando si dovrebbe. So che un gran numero di mie auto-modifiche (in diversi campi) sta correggendo lo stesso errore di battitura. –