我试图了解 IE 中的一些浏览器缓存行为。我有一个包含一些 css 的测试页面并执行以下操作:
编辑:我不清楚,我有一个 test.html 文件,它有一个指向 test.css 文件的链接。test.html 文件每次都会重新发送,只有 test.css 文件被缓存。
IE9:
- 转到页面以获取当前文件
- css 文件返回 19:58 的 Last-Modified 标头
- 更改css文件
- 点击网址栏并按回车键
- 为 css 文件获取未修改的 304
在请求中发送以下标头:
Request GET /test.css HTTP/1.1
Accept text/css
Referer http://10.0.0.60/test.html
Accept-Language en-US
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding gzip, deflate
Host 10.0.0.60
响应中的 Last-Modified 标头是 19:58(与修改文件之前相同)
单击指向同一页面或使用相同 css 文件的另一个页面的链接会执行相同的操作。
Ctrl+R 发送一个 If-Modified-Since 标头并获取更新的文件。
所以我的问题是,是什么决定浏览器应该使用缓存版本?如果没有 If-Modified-Since 标头,为什么服务器返回 304?
服务器是 IIS 7