发布于 2012-06-12 18:32:51
我认为这是因为浏览器在请求过程中没有发送一个If修改的,对吧?
对,是这样。
我是否需要更改初始响应头中的某些内容以使304发生?
是。如果比较对后续请求具有304响应代码的资源的原始响应头,您将注意到:
/govtrip/site/grphx/文件夹中。第一个时刻告诉我们,该文件夹中很可能有.htaccess文件设置这些头(或该文件夹的配置文件中的其他部分)。
如果您使用304响应代码查看这些资源的请求头,您将看到“If -修改-自”和“If-无匹配”标题的存在。基于这些"If-*“标头,Apache决定如何答复请求。我确信--现在你可以在这里看到一个模式--很容易识别出在哪里使用和在哪里使用的值。
Resource: /govtrip/site/grphx/system_green.gifEtag: "AAAAS9z9eMo"
Expires: Thu, 14 Jun 2012 18:24:24 GMT
Last-Modified: Wed, 20 Apr 2011 17:29:45 GMTIf-Modified-Since: Wed, 20 Apr 2011 17:29:45 GMT
If-None-Match: "AAAAS9z9eMo"发布于 2018-12-28 21:04:38
在我的经验中,浏览器从不使用If-Modified-Since头。我只看到它由爬虫发送,比如Googlebot。要获得有条件的下载,首先使用ETag: hash-here回答,然后在相应的If-None-Match: hash-here请求中注意相同的URL。在发出条件下载之前,缓存必须先过期,所以请确保使用正确的、立即到期的标头。
注意:还有一个If-Match头。此选项仅用于部分下载,并通过让您检测文件已更改且不再可能恢复来防止损坏。在高级情况下,它甚至可以让您选择要恢复的文件。
https://webmasters.stackexchange.com/questions/30877
复制相似问题