我有两个文件,我想缓存客户端,直到源更改。
对 html 页面 (index.html) 的调用在响应中有以下标头:
HTTP/1.1 200 OK
Cache-Control: public,max-age=7776000
Content-Type: text/plain
Content-Encoding: gzip
Last-Modified: Wed, 13 Jul 2011 13:02:04 GMT
Accept-Ranges: bytes
ETag: "e07f1e105d41cc1:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Wed, 03 Aug 2011 11:47:47 GMT
Content-Length: 242
对 xml 页面 (application-context-dashboard.xml) 的调用在响应中有以下标头:
HTTP/1.1 200 OK
Cache-Control: public,max-age=7776000
Content-Type: text/xml
Content-Encoding: gzip
Last-Modified: Wed, 03 Aug 2011 11:31:56 GMT
Accept-Ranges: bytes
ETag: "10ba5f3d051cc1:0"
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Wed, 03 Aug 2011 11:47:14 GMT
Content-Length: 457
现在,当我重新加载它们时,对于 index.html,会发送 304 以检查文件是否已更改。对于 xml 文件,不发送 304 并触发客户端缓存。
304 调用 index.html:请求:
GET /edumatic3/trunk/backend/index.html HTTP/1.1
Host: localhost
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.122 Safari/534.30
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: nl,en-US;q=0.8,en;q=0.6,fr;q=0.4
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: CurrenUICulture=en-us
If-None-Match: "e8626a973e45cc1:0"
If-Modified-Since: Mon, 18 Jul 2011 11:34:01 GMT
有没有办法为 xml 文件实现相同的结果?+ 为什么它适用于 html 而不适用于 xml?初始请求的两个标头似乎是相同的。
浏览器:铬。
其他静态内容(如 swf、txt、...
更新:
显然 Chrome 对 index.html 的工作还不错,但例如 firefox 就没有……