Iam用ngnix服务我的静态内容。
位置/静态{
别名/ opt / static / blog /;
access_logclosures;
etags on;
etag_hash在;
etag_hash_method md5;
到期1d;
add_header Pragma“public”;
add_header Cache-Control“public,must-revalidate,proxy-revalidate”;
}
结果标题看起来像这样:
caching控制:公共,必须重新validation,代理重新validation caching控制:最大年龄= 86400 连接:closures 内容编码:gzip 内容types:应用程序/ x-的JavaScript; 字符集= utf-8的 date:2012年9月11日星期二08:39:05 GMT ETAG:e2266fb151337fc1996218fafcf3bcee 有效期至:2012年9月12日星期三08:39:05 GMT Last-Modified:Tue,11 Sep 2012 06:22:41 GMT 附注:公 服务器:nginx / 1.2.2 传输编码:分块 有所不同:接受编码
为什么nginx发送2个Cache-Control条目,这可能是客户端的问题吗?
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
当且仅当该报头字段的整个字段值被定义为以逗号分隔的列表[即#(值)]时,具有相同字段名的多个消息报头字段可以存在于消息中。 必须将多个头域组合成一个“field-name:field-value”对,而不用改变消息的语义,把每个后续的域值附加到第一个域中,每个域都用逗号分隔。 因此,接收具有相同字段名的头字段的顺序对于组合字段值的解释是重要的,因此当消息被转发时,代理务必不改变这些字段值的顺序。