【发布时间】:2017-08-07 21:08:51
【问题描述】:
在测试我正在开发的 web 应用程序时,我注意到 firefox 似乎忽略了用户图像的缓存标头。
所有此类图片都是通过 PHP 脚本加载的,这是一个示例响应:
Cache-Control: private, max-age=0
Connection: Keep-Alive
Content-Disposition: inline; filename="Immagine.jpg"
Content-Encoding: gzip
Content-Length: 33103
Content-Type: image/jpeg
Date: Thu, 16 Mar 2017 15:24:39 GMT
Etag: allegato-4f04349dba5b5f636a439af71ed75109b701a01d6ac5dfc287dee9729ce4e2098b02e39a2d673789213f5fdf20ceb21a0fc26f17e93e602e38238c3681b9bd00
Expires: Fri, 16 Jun 2017 16:24:40 +0200
Keep-Alive: timeout=5, max=100
Last-Modified: Tue, 16 Jul 2013 10:18:04 +0200
Server: Apache
Vary: Accept-Encoding
这里是firefox发送的请求的相关部分:
Host: mywebapp.local
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0
Accept: */*
Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
我认为问题可能是由于 FF 发送了那些 Pragma 和 Cache-Control 标头,但是我检查了多次并且我启用了缓存。
正确缓存的 Chrome 上的“相同”请求如下所示:
Accept:image/webp,image/*,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
DNT:1
Host:mywebapp.local
If-Modified-Since:Tue, 16 Jul 2013 10:18:10 +0200
If-None-Match:allegato-4f04349dba5b5f636a439af71ed75109b701a01d6ac5dfc287dee9729ce4e2098b02e39a2d673789213f5fdf20ceb21a0fc26f17e93e602e38238c3681b9bd00
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
我如何确定这个问题是与我自己的浏览器有关,还是与网络应用本身有关?
【问题讨论】:
-
关于“我检查了多次并且我启用了缓存。”您还必须取消选中“工具箱选项”( ctrl+shift+i 上的面板)中的
Disable HTTP Cache when toolbox is open选项(默认情况下已选中)。我猜你也是这样做的,对吧? -
我不知道那个开关 D: 这实际上是问题的罪魁祸首......我现在怀疑是删除这个问题还是自我回答。
-
或者我可以给它一个答案,然后你可以接受它:)
-
看起来很公平,继续!