4

我在通过 https 在 IE 上使用 etags 缓存内容时遇到问题。

Chrome 和 Firefox 允许我使用以下组合成功缓存内容

If-Modified-Since 

If-None-Match 

If-None-Match 标头很重要,因为可能以两种不同的方式查看同一页面,这将生成不同的 etag。

这非常有效,除非我在 https 上使用 IE(我尝试过 IE9 和 10)。在这种情况下,它会删除 if-none-match 标头,但不会删除 if-modified-since 标头。这是一个问题,因为现在它为两种不同的查看方式显示相同的缓存内容,因为修改后的时间戳和 url 都匹配。

SSL 证书是有效的,我已经阅读过它可能会导致问题,并且它在 FF 和 Chrome 中都可以使用。有没有办法来解决这个问题?

这是我在 Chrome、IE (http) 和 IE (https) 中的标题。
请注意,IE (https) 中缺少 If-None-Match 标头。如果问题出在服务器响应上,我已经包含了请求和响应。我已经更改了 url 和服务器名称。

Chrome - https(按预期工作)

GET /events/1618 HTTP/1.1
Host: test.co.uk
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36
Referer: http://test.co.uk/events/1618
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: auth_token=2397dd7dc6ce88ab66fc8efc4150f60232f977f3; _auction_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFVEkiJTY4ZjdiMTQxYmEzMjJiZjUwNjc1MmQ2M2FjZTM5MDI wBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMTlkS3JKLzRLbE5Sd1V1Q2QxUkFlUWI0bjhwMFo1RlRqMDkwMDR4SnNESUE9BjsARkkiDHVzZXJfaWQGOwBGaQJgBUkiD2luX3NhbmRwaXQGOwBGSSIJdHJ1ZQY7AFQ%3D--c54fabd39a2678f2cdee6f76d9812dda331dbf61; locale=en-uk
If-None-Match: "327fd750ae149bd0589dc13bea9c48f2"
If-Modified-Since: Fri, 21 Mar 2014 08:35:50 GMT

HTTP/1.1 304 Not Modified
Date: Fri, 21 Mar 2014 14:05:03 GMT
Server: Apache/2.2.3 (CentOS)
Connection: close
ETag: "ba4788d17893e6ff2593af9e360db7cc"
Cache-Control: must-revalidate, private, max-age=0
Set-Cookie: locale=en-uk; path=/; expires=Sat, 21-Mar-2015 14:05:03 GMT

IE - http(按预期工作)

Request GET /events/1618 HTTP/1.1
Accept  text/html, application/xhtml+xml, */*
Referer http://test.co.uk/events/1618
Accept-Language en-GB
User-Agent  Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Accept-Encoding gzip, deflate
Host  test.co.uk
If-Modified-Since Fri, 21 Mar 2014 08:35:50 GMT
If-None-Match "327fd750ae149bd0589dc13bea9c48f2"
DNT 1
Connection  Keep-Alive
Cookie  locale=en-uk; auth_token=2397dd7dc6ce88ab66fc8efc4150f60232f977f3; _auction_session=BAh7CkkiD3Nlc3Npb25faWQGOgZFVEkiJTIxMzRhMTQwYzZhNjU4ZTE2NGY5Y2Y4ZGNjZjVhN2I 3BjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXFReklPK3oxNEZSUUEwa3AyeFZLY3REVkJCMDI4U3UwVnlYNlJnSFZGakE9BjsARkkiDHVzZXJfaWQGOwBGaQJgBUkiD2luX3NhbmRwaXQGOwBGSSIJdHJ1ZQY7AFRJIhdpbl9zYW5kcGl0X2FzX3VzZXIGOwBGSSIJMTM0MQY7AFQ%3D--91e307c63096e1cc96f265d457480707021b25dc

Response  HTTP/1.1 304 Not Modified
ETag  "327fd750ae149bd0589dc13bea9c48f2"
X-Request-Id  16ab60d75b2bedcad96a182423771e63
X-Runtime 0.983268
X-Rack-Cache  miss
X-Powered-By  Phusion Passenger 4.0.37
Content-Length  21788
Status  200 OK
Content-Type  text/html; charset=utf-8
Expires Fri, 21 Mar 2014 13:06:23 GMT
Last-Modified Fri, 21 Mar 2014 08:35:50 GMT

IE - https(未按预期工作)

Request GET /events/1618 HTTP/1.1
Accept  text/html, application/xhtml+xml, */*
Accept-Language en-GB
User-Agent  Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
Accept-Encoding gzip, deflate
Host  test.co.uk
If-Modified-Since Fri, 21 Mar 2014 08:35:50 GMT; length=26501
DNT 1
Connection  Keep-Alive
Cookie  locale=en-uk; auth_token=2397dd7dc6ce88ab66fc8efc4150f60232f977f3; _auction_session=BAh7CkkiD3Nlc3Npb25faWQGOgZFVEkiJTIxMzRhMTQwYzZhNjU4ZTE2NGY5Y2Y4ZGNjZjVhN2I3BjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMXFReklPK3oxNEZSUUEwa3AyeFZLY3REVkJCMDI4U3UwVnlYNlJnSFZGakE9BjsARkkiDHVzZXJfaWQGOwBGaQJgBUkiD2luX3NhbmRwaXQGOwBGSSIJdHJ1ZQY7AFRJIhdpbl9zYW5kcGl0X2FzX3VzZXIGOwBGSSIJMTM0MQY7AFQ%3D--91e307c63096e1cc96f265d457480707021b25dc

Response  HTTP/1.1 304 Not Modified
ETag  "327fd750ae149bd0589dc13bea9c48f2"
X-Request-Id  25aab65eb6028c521622e86d8d716226
X-Runtime 0.406167
X-Rack-Cache  miss
X-Powered-By  Phusion Passenger 4.0.37
Content-Length  26501
Status  200 OK
Content-Type  text/html; charset=utf-8
Expires Fri, 21 Mar 2014 13:14:02 GMT
Last-Modified Fri, 21 Mar 2014 08:35:50 GMT

我将非常感谢任何建议。

4

0 回答 0