2010-08-16 11 views
106

Puede describir un ejemplo que indique la diferencia entre el control de caché público y privado en aplicaciones asp.net alojadas en IIS.Privado vs público en Cache-Control

leí en MSDN que la diferencia es la siguiente:

público: Conjuntos Cache-Control: público para especificar que la respuesta es cacheable por los clientes y las memorias caché de proxy() compartidos.

Privado: Valor predeterminado. Establece Cache-Control: private para especificar que la respuesta solo se puede almacenar en caché en el cliente y no en cachés compartidos (servidor proxy).

No estoy seguro de haber entendido por completo los pros y los contras de cada elección. Un ejemplo de cuándo o no usarlo sería genial.

Por ejemplo, ¿qué debo hacer si tengo dos servidores web que alojan la misma aplicación? ¿Hay algo que tener cuidado si elijo Privado o Público?

Respuesta

184

La única diferencia es que con Private no está permitiendo que los proxies guarden en caché los datos que viajan a través de ellos. Al final, todo se reduce a los datos contenidos en las páginas/archivos que está enviando.

Por ejemplo, su ISP podría tener un proxy invisible entre usted e Internet, es decir, almacenar en caché las páginas web para reducir la cantidad de ancho de banda necesaria y reducir los costos. Al usar cache-control: private, está especificando que no debe almacenar en caché la página (pero permitiendo que el usuario final lo haga). Si usa cache-control: public, está diciendo que está bien que todos guarden en caché la página, y que el proxy guarde una copia.

Como regla general, si es algo todo el mundo puede acceder (por ejemplo, el logotipo de esta página) Cache-Control: pública podría ser mejor, porque cuanta más gente esa caché, menos ancho de banda que' Necesitaré Si se trata de algo relacionado con el usuario conectado (por ejemplo, el código HTML de esta página incluye mi nombre de usuario, por lo que no será útil para nadie) cache-control: private será mejor, ya que los proxies almacenarían en caché los datos eso no será solicitado por otros usuarios, y es posible que también guarden datos que no desea conservar en servidores en los que no confía.

Y, por supuesto, todo lo que no es público debe tener un caché privado. De lo contrario, los datos podrían almacenarse en un servidor proxy intermedio, si cualquiera pudiera acceder a él.

+31

La única diferencia es que con Private usted ** no ** permite el almacenamiento en caché de los proxies ... Supongo que esto fue un error tipográfico. +1 en la respuesta aparte de eso. Vale la pena agregar que privado no ofrece ningún grado de seguridad, aún puede ser visto por agentes en el medio. Simplemente significa que ningún agente "honesto" se lo dará a otra persona en lugar de una respuesta recién generada. –

+0

¡Reparado! Es gracioso porque lo volví a leer varias veces antes de publicarlo, pero creo que sabía que el "no" tenía que estar allí, así que mi mente lo acaba de agregar: D. Y sí, +1 a su comentario, porque debe tenerse en cuenta que, aunque se recomienda para datos relacionados con el usuario, privado no reemplazará la seguridad verdadera (SSL). – salgiza

+0

Es muy fácil escribir "no" cuando no debería o omitirlo cuando debería. Sé que una gran cantidad de mis propias autoediciones (en diferentes campos) es corregir ese mismo error tipográfico. –

Cuestiones relacionadas