我之前曾问过这个问题,并错误地认为我的问题并不真正存在(请参阅:缓存和 HTTPS)。我错了; 问题确实存在。
这是我的问题的描述:
- 当我从 HTTP 页面加载资源(例如resource-a)时(在 HTTP 页面上所有资源都将来自 HTTP),我得到一个
200 OK
. 当我重新加载页面(或转到另一个 HTTP 页面)时,resource-a 得到一个304 Not Modified
. - 当我从 HTTPS 页面加载资源 a 时(在 HTTPS 页面上时,所有资源都来自 HTTPS),从 HTTPS 加载资源 a 并获取
200 OK
. 当我重新加载页面(或转到另一个 HTTPS 页面)时,我得到一个304 Not Modified
. - 当我返回一个 HTTP 页面时,resource-a 仍然得到一个
304 Not Modified
. - 当我返回 HTTPS 页面时,resource-a 得到一个
200 OK
. 缓存的副本发生了什么?我怎样才能让它缓存?
这是标题的示例:
Request URL: https://styles.mydomain.com/assets/styles/main.css
Request Method: GET
Status Code: 200 OK
Request Headers
Accept: text/css,*/*;q=0.1
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Connection: keep-alive
Host: styles.mydomain.com
Referer: https://www.mydomain.com/sign-in/
User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
Response Header
Accept-Ranges: bytes
Cache-Control: public
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 11836
Content-Type: text/css
Date: Tue, 02 Oct 2012 09:51:20 GMT
Expires: Fri, 30 Sep 2022 09:51:20 GMT
Keep-Alive: timeout=5, max=99
Last-Modified: Tue, 02 Oct 2012 09:25:30 GMT
Server: Apache/2.2.22 (Unix) mod_ssl/2.2.22 OpenSSL/0.9.7a mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.3.8
Vary: Accept-Encoding