Rising Sun

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            148 隨筆 :: 0 文章 :: 22 評論 :: 0 Trackbacks
          在 Response-Header 中加上這幾項:

          Last-Modified: Wed, 18 Jun 2008 14:22:27 GMT
          Cache-Control: max-age=600
          Expires: Wed, 18 Jun 2008 14:48:39 GMT
          Date: Wed, 18 Jun 2008 14:38:39 GMT


          其中 Last-Modified 后面的日期是上次更新 config 的時間,Date 后面是當前時間,Expires 后面是當前時間 + 10分鐘,10分鐘就是 Cache-Control 后面的 max-age,單位是秒。因為看到 GAE 對 static 文件的 Cache 時間也是10分鐘,所以我使用了這個數字。

          Last-Modified

          如果客戶端收到的 Response 中包含 Last-Modified,那么下次 request 的時候就會在 Request Header 中包含 If-Modified-Since 字段,值就是上次服務器發送的 Last-Modified,服務器端會判斷上次的 config 時間是否比 If-Modified-Since 晚。如果自上次 request 之后又更新了 config,那么服務器就會返回完整的內容;如果期間沒有更新 config,那么服務器就沒必要返回完整的內容,只需要向客戶端發送一個 304 Not Modified 狀態碼就可以了。

          Cache-Control、Date 和 Expires

          這幾個參數的組合,表示告訴瀏覽器:這個文件在多長時間之內不會更改,在這個時間內不需要再 request,保守起見,我設置了10分鐘。

          瀏覽器行為

          如果只是在網站的鏈接之間 click click click,那么瀏覽器會完全遵守上述行為。這樣可以盡可能地減少請求次數,以及 response 的數據量。

          如果在某個頁面點擊了瀏覽器的刷新按鈕或者按 F5,瀏覽器會忽略 Expires 時間,把該頁面需要的所有的文件都重新請求一遍。

          如果按住 Ctrl 再刷新或者 Ctrl-F5 (俗稱強制刷新),瀏覽器將不會發送 Last-Modified Header,將所有需要的文件請求一遍,服務器會返回文件的完整內容,而不是僅僅一個 304 Not Modified 狀態碼。

          后記

          經初步觀察,現在瀏覽器不會每次都彪呼呼地去請求一大堆 css、jpg、gif 文件了,瀏覽器也不會每次都腦殘地返回完整內容了,看來是有效了。

          posted on 2012-07-24 17:29 brock 閱讀(18909) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 和政县| 肥东县| 钦州市| 辽阳县| 永城市| 九龙坡区| 扎囊县| 昭平县| 开远市| 邯郸县| 航空| 许昌市| 内乡县| 英山县| 贺州市| 甘孜县| 邯郸市| 建水县| 汝阳县| 日土县| 玉树县| 喜德县| 武穴市| 孝义市| 大埔区| 沙田区| 越西县| 井陉县| 鹤峰县| 察雅县| 泽普县| 吴江市| 会泽县| 亳州市| 中超| 成都市| 通化市| 资源县| 沙湾县| 北京市| 屏东县|