Je viens de commencer à utiliser OutputCache sur certaines de mes actions de contrôleur et je ne reçois pas tout à fait la réponse à laquelle je m'attendais.ASP.NET MVC: En-têtes OutputCache et http
J'ai défini le temps de mise en cache à 5 minutes et l'en-tête Expires revient au même que l'en-tête Last-Modified qui est l'heure à laquelle la demande a été faite.
C'est l'en-tête que je reçois actuellement:
Date Thu, 16 Jul 2009 06:35:07 GMT
Server Microsoft-IIS/6.0
X-Powered-By ASP.NET
X-AspNet-Version 2.0.50727
X-AspNetMvc-Version 1.0
Content-Encoding gzip
Cache-Control public, max-age=300
Expires Thu, 16 Jul 2009 06:35:06 GMT
Last-Modified Thu, 16 Jul 2009 06:35:03 GMT
Vary *
Content-Type text/html; charset=utf-8
Content-Length 575
Ceci est l'en-tête j'attendre:
Date Thu, 16 Jul 2009 06:35:07 GMT
Server Microsoft-IIS/6.0
X-Powered-By ASP.NET
X-AspNet-Version 2.0.50727
X-AspNetMvc-Version 1.0
Content-Encoding gzip
Cache-Control public, max-age=300
Expires Thu, 16 Jul 2009 06:40:06 GMT
Last-Modified Thu, 16 Jul 2009 06:35:03 GMT
Vary *
Content-Type text/html; charset=utf-8
Content-Length 575
Toutes les idées sur lesquelles il serait en train de faire cela?
Vive Anthony
Humm s'applique-t-il uniquement à HTTP/1.1? Parce que j'utilise un proxy qui apparemment ne supporte que HTTP/1.0. Cela s'applique-t-il encore? –
Ce que le proxy prend en charge ne fait que différer de ce que le proxy fait avec le contenu. Les en-têtes envoyés dépendent de l'emplacement du cache spécifié dans votre attribut de cache de sortie. – bzlm
L'en-tête Cache-Control a été introduit dans HTTP/1.1 pour gérer les limitations dans l'en-tête Expires. Le problème est que l'en-tête Expires définit une date d'expiration fixe qui peut entraîner des problèmes si les horloges client et serveur ne sont pas synchronisées. Lors de l'utilisation d'un navigateur prenant en charge HTTP/1.1 (à peu près tous les navigateurs), l'en-tête Expires est ignoré en faveur de l'en-tête Cache-Control - max-age. La seule fois où l'en-tête Expires est utilisé est lorsque la demande provient d'un navigateur qui prend uniquement en charge HTTP/1.0, pas HTTP/1.1. –