120 votes

Privé ou public dans le contrôle des caches

Pouvez-vous décrire un exemple indiquant la différence entre Cache-Control public et privé dans les applications asp.net hébergées dans IIS.

J'ai lu dans MSDN que la différence est la suivante :

Public : Définit Cache-Control : public pour spécifier que la réponse peut être mise en cache par les clients et les caches partagés (proxy).

Privé : Valeur par défaut. Définit Cache-Control : private pour spécifier que la réponse peut être mise en cache uniquement sur le client et non par les caches partagés (serveur proxy).

Je ne suis pas sûr d'avoir bien compris les avantages et les inconvénients de chaque choix. Un exemple pour savoir quand l'utiliser ou non serait formidable.

Par exemple, que dois-je faire si j'ai deux serveurs web qui hébergent la même application ? Y a-t-il quelque chose à surveiller si je choisis Privé ou Public ?

224voto

salgiza Points 2478

La seule différence est qu'avec Private, vous ne permettez pas aux proxies de mettre en cache les données qui transitent par eux. En fin de compte, tout se résume aux données contenues dans les pages/fichiers que vous envoyez.

Par exemple, votre fournisseur d'accès pourrait avoir un proxy invisible entre vous et l'internet, qui met en cache les pages web pour réduire la quantité de bande passante nécessaire et diminuer les coûts. En utilisant cache-control:private, vous indiquez qu'il ne doit pas mettre la page en cache (mais vous autorisez l'utilisateur final à le faire). Si vous utilisez cache-control : public, vous indiquez que tout le monde peut mettre la page en cache, et que le proxy en conservera donc une copie.

En règle générale, si c'est quelque chose tout le monde peut accéder (par exemple, le logo de cette page) cache-control : public pourrait être mieux, car plus il y a de personnes qui le mettent en cache, moins vous aurez besoin de bande passante. S'il s'agit de quelque chose qui est lié à l'utilisateur connecté (par exemple, le HTML de cette page comprend mon nom d'utilisateur, il ne sera donc utile à personne d'autre), cache-control : private sera préférable, car les proxies mettront en cache des données qui ne seront pas demandées par d'autres utilisateurs, et ils pourraient également conserver des données que vous ne voulez pas conserver sur des serveurs auxquels vous ne faites pas confiance.

Et, bien sûr, tout ce qui n'est pas public devrait avoir un cache privé. Sinon, les données pourraient être stockées dans un serveur proxy intermédiaire, où toute personne y ayant accès pourrait y avoir accès.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X