重复的最大年龄标题

我正在使用Apache 2.4.25使用代理传递公开一些后端服务。 Apache还会根据MIMEtypes设置caching控制标头。 当前的cachingconfiguration如下所示:

ExpiresActive on ExpiresDefault "now" ExpiresByType text/html "now" ExpiresByType image/gif "access plus 120 minutes" ExpiresByType image/jpeg "access plus 120 minutes" ExpiresByType image/png "access plus 120 minutes" ExpiresByType text/css "access plus 60 minutes" ExpiresByType text/javascript "access plus 60 minutes" ExpiresByType application/x-javascript "access plus 60 minutes" ExpiresByType text/xml "access plus 60 minutes" ExpiresByType application/javascript "access plus 60 minutes" ExpiresByType application/x-font-ttf "access plus 30 days" ExpiresByType application/x-font-woff "access plus 30 days" ExpiresByType application/x-font-eot "access plus 30 days" ExpiresByType application/x-font-svg "access plus 30 days" 

但是,其中一个后端服务也是设置caching控制最大年龄标头。 这导致响应标题包含两个最大年龄设置。

在Chrome中看到的重复的最大代理值

当呈现两个具有不同值的最大年龄设置时,浏览器如何反应? 另外,是否可以在添加默认值之前检查现有的caching控制头?

如果您不希望由于后端发送相同的标题而意外重复,请使用标题“set”而不是标题“add”。

根据最新的mod_expires文档: http : //httpd.apache.org/docs/current/mod/mod_expires.html

当Expires头已经是服务器产生的响应的一部分时,这个模块不会改变或添加Expires或Cache-Control头。

所以一个select是让你的后端除了已经设置的Cache-Control头之外还设置一个Expires头。 例如,在PHP中:

 $seconds = 60; header("Expires: ". gmdate('D, d MYH:i:s', time() + $seconds). ' GMT'); header("Cache-Control: max-age=". $seconds);