jim*_*asp 5 etag google-chrome browser-cache
Google Chrome 浏览器不使用磁盘(或内存)缓存来响应 html。chrome 的行为改变了吗?Javascript/css 文件看起来没问题,但 html 不行。
相同的 html 响应确实会在 Firefox 和 Edge 中本地缓存。
下面是 html/js 响应示例。两个响应的 HTTP 状态代码都是 304,并且响应不是 https。我在现有网址的浏览器栏中按 Enter 键,因此没有使用刷新。点击后退/前进浏览器按钮会产生相同的结果。
html 响应标头( Chrome 上不使用Chrome 磁盘/内存缓存,但在 Edge/FF 上使用) - 请注意,这是一个动态页面,而不是静态 html 页面,因此该 url 没有 .html 扩展名:
Cache-Control:public, max-age=3600
Content-Type:text/html
Content-Encoding:gzip
Date:Wed, 08 Nov 2017 09:57:31 GMT
ETag:"627b1769f19f9ff568faf620ea25d144"
Vary:Accept-Encoding
Run Code Online (Sandbox Code Playgroud)
.js 文件响应标头(磁盘/内存缓存在包括 Chrome 在内的所有浏览器中使用):
Accept-Ranges:bytes
Cache-Control:public, max-age=3600
Content-Encoding:gzip
Content-Type:application/javascript
Date:Wed, 08 Nov 2017 09:41:39 GMT
ETag:"1d2bce813ee8a28"
Last-Modified:Mon, 24 Apr 2017 10:46:50 GMT
Transfer-Encoding:chunked
Vary:Accept-Encoding
Run Code Online (Sandbox Code Playgroud)
我尝试过的更改:
将静态的最后修改的内容添加到 html 响应中。
为 html 响应添加 Age:0 标头。
将 html 响应的内容类型更改为 application/javascript。
这些都没有带来什么影响。
我没有在 Chrome 开发工具中启用“禁用缓存”,并且在不同的计算机上得到相同的结果。
问题:
主要是 - 我的响应标头有问题吗?(如果是这样,为什么它可以在其他浏览器中运行,但不能在 Chrome 中运行?)
Google Chrome 的行为是否发生了变化?(如果是这样,您能提供博客/文章的链接吗?)
您自己网站上的 Chrome 中的本地缓存是否可以正常工作以处理 html 响应?显然,如果不这样做,这会大大增加繁忙网站的流量/负载/成本。