2012-09-24 105 views
1

我注意到一些有趣的事情,同時監視我的瀏覽器和服務器之間的網絡通信。它與緩存有關。緩存和HTTPS

說我有一個CSS文件http://domain.com/main.css(用於不安全的頁面),它也可以通過https://domain.com/main.css(用於受保護的頁面)訪問。

  1. 當我第一次加載一個不安全的頁面時,CSS文件得到一個200 OK。當我重新加載頁面(或轉到另一個不安全的頁面)時,我得到一個304 Not Modified
  2. 當我第一次訪問安全頁面時,來自https源代碼的CSS文件獲得200 OK。當我重新加載頁面(或轉到其他安全頁面,我得到一個304 Not Modifie
  3. 當我回到不安全的網頁,CSS文件仍然得到了304 Not Modified
  4. 當我返回到安全頁面時, CSS文件中得到了200 OK發生了什麼事緩存副本?我怎樣才能使它緩存?

回答

1

This可能會回答你的問題。這可能是您的網站通過定義這個資源定義爲不可cacheble情況這個:

Cache-Control private, must-revalidate, max-age=0 

例如(訪問https://www.google.com/ncr時)導致瀏覽器不緩存它。你有Fire-bug \ Fiddler或類似的東西來查看響應頭文件嗎?

+0

我的.htaccess有這樣的:'ExpiresByType文本/ css「訪問加10年'',我的響應頭文件的過期時間爲:'Expires:Thu,2022 2222 22:25:51 GMT'。由於指定Expires和Cache-Control是多餘的,我只使用Expires。 – StackOverflowNewbie

+0

你可以粘貼整個標題(Response&Request)嗎? – Scis

+0

沒關係。我錯誤地閱讀了Firebug。即使它從緩存中獲取資源,它也會說200 OK。 – StackOverflowNewbie