6 votes

Nginx envoie 2 en-têtes Cache-Control

J'utilise mon contenu statique avec ngnix.

location /static {
      alias /opt/static/blog/;
      access\_log off;
      etags on;
      etag\_hash on;
      etag\_hash\_method md5;
      expires     1d;
      add\_header Pragma "public";
      add\_header Cache-Control  "public, must-revalidate, proxy-revalidate";
}

L'en-tête résultant ressemble à ceci :

Cache-Control:public, must-revalidate, proxy-revalidate
Cache-Control:max-age=86400
Connection:close
Content-Encoding:gzip
Content-Type:application/x-javascript; charset=utf-8
Date:Tue, 11 Sep 2012 08:39:05 GMT
Etag:e2266fb151337fc1996218fafcf3bcee
Expires:Wed, 12 Sep 2012 08:39:05 GMT
Last-Modified:Tue, 11 Sep 2012 06:22:41 GMT
Pragma:public
Server:nginx/1.2.2
Transfer-Encoding:chunked
Vary:Accept-Encoding

Pourquoi nginx envoie-t-il 2 entrées Cache-Control ? Cela pourrait-il être un problème pour les clients ?

5voto

Lee Points 6659

http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2

Plusieurs champs d'en-tête de message portant le même nom de champ PEUVENT être présents dans un message si et seulement si l'ensemble du champ-valeur de ce champ d'en-tête est défini comme une liste séparée par des virgules [c'est-à-dire #(valeurs)]. Il DOIT être possible de combiner les multiples champs d'en-tête en une paire "nom du champ : valeur du champ", sans modifier la sémantique du message, en ajoutant chaque valeur de champ suivante à la première, chacune étant séparée par une virgule. L'ordre dans lequel les champs d'en-tête ayant le même nom de champ sont reçus est donc important pour l'interprétation de la valeur du champ combiné, et un mandataire NE DOIT PAS changer l'ordre de ces valeurs de champ lorsqu'un message est transmis.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X