中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

HTTP Caching 優(yōu)化網(wǎng)站

  HTTP Caching 用好了,可以極大的減小服務(wù)器負(fù)載和減少網(wǎng)絡(luò)帶寬。十分有必要深入了解下 http 的 caching 協(xié)議。

  先來看下請求/響應(yīng)過程:

http 請求/響應(yīng)

http 請求/響應(yīng)

  1、用 Last-Modified 頭

  在第一次請求的響應(yīng)頭返回 Last-Modified 內(nèi)容,時間格式如:Wed, 22 Jul 2009 07:08:07 GMT。是零時區(qū)的 GMT 時間,servlet 中可以用 response.addDateHeader ("Last-Modified", date.getTime ()); 加入響應(yīng)頭。如圖:

last-modified 和 If-Modified-Since

last-modified 和 If-Modified-Since

  Last-Modified 與 If-Modified-Since 對應(yīng)的,前者是響應(yīng)頭,后者是請求頭。服務(wù)器要處理 If-Modified-Since 請求頭與 Last-Modified 對比看是否有更新,如果沒有更新就返回 304 響應(yīng),否則按正常請求處理。如果要在動態(tài)內(nèi)容中使用它們,那就要程序來處理了。

  ps:servlet 取 If-Modified-Since 可以用 long last = requst.getDateHeader ("If-Modified-Since");

  2、用 Etag 頭

  很多時間可能不能用時間來確定內(nèi)容是否有更新。那可以用 Etag 頭,etag 是以內(nèi)容計算一個標(biāo)識。計算的方式可以自己決定,比如可以用 crc32、md5等。

Etag 和 If-None-Match

Etag 和 If-None-Match

  Etag 與 If-None-Match 是對應(yīng)的,前者是響應(yīng)頭,后者是請求頭。服務(wù)器要判斷請求內(nèi)容計算得到的 etag 是否與請求頭 If-None-Match 是否一致,如果一致就表示沒有更新,返回 304 就可,否則按正常請求處理。可以參考:用 HttpServletResponseWrapper 實現(xiàn) Etag 過濾器

  3、用 Expires 頭,過期時間

  當(dāng)請求的內(nèi)容有 Expires 頭的時候,瀏覽器會在這個時間內(nèi)不去下載這個請求的內(nèi)容(這個行為對 F5 或 Ctrl+F2 無效,用 IE7,F(xiàn)irefox 3.5 試了,有效的比如:在地址輸入后回車)。

expires 過期時間

expires 過期時間

  在 servlet 中可以用 response.addDateHeader ("Expires", date.getTime ()); 添加過期內(nèi)容。

  ps:在 httpwatch 中可以看到 Result 為 (Cached) 狀態(tài)的。

  4、用 max-age 的 Cache-Control 頭

  max-age 的值表示,多少秒后失效,在失效之前,瀏覽器不會去下載請求的內(nèi)容(當(dāng)然,這個行為對 F5 或 Ctrl+F2 無效)。比如:服務(wù)器寫 max-age 響應(yīng):response.addHeader ("Cache-Control", "max-age=10");

  ps:如果你還要加一些 Cache-Control 的內(nèi)容,比如:private,最好不要寫兩個 addHeader,而是一個 response.addHeader ("Cache-Control", "private, max-age=10"); 否則 ie 可能對 max-age 無效,原因它只讀第一個 Cache-Control 頭。

  小結(jié):

  Last-Modified 與 Etag 頭(即是方式 1 和2)還是要請求服務(wù)器的,只是僅返回 304  頭,不返回內(nèi)容。所以瀏覽怎么 F5 ,304 都是有效的。但用 Ctrl+F5 是全新請求的(這是瀏覽器行為,不發(fā)送緩存相關(guān)的頭)。

  Expires 頭與 max-age 緩存是不需要請求服務(wù)器的,直接從本地緩存中取。但 F5 會忽視緩存(所以使用 httpwatch 之類的 http 協(xié)議監(jiān)察工具時,不要 F5 誤認(rèn)為 Expires 和 max-age 是無效的)。

  http 協(xié)議監(jiān)察工具:

  Firebox:httpfox、live http header

  IE:httpwatch、iehttpheader

  重要參考文章:How To Optimize Your Site With HTTP Caching

it知識庫HTTP Caching 優(yōu)化網(wǎng)站,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲成人av | 香蕉国产在线视频 | 午夜视频在线 | 亚洲欧美日韩中文字幕一区二区三区 | 欧美一级毛片免费观看 | 日韩精品在线观看网站 | 日日操夜夜操视频 | 日本在线看片 | 91在线视频一区 | 中文字幕亚洲在线 | 欧洲精品久久久久毛片完整版 | 久久不卡日韩美女 | 亚洲狠狠 | 亚洲av毛片 | 伊人网在线播放 | 亚洲欧美网 | 一区二区三区精品视频 | 国产成人精品久久二区二区 | 日韩成人在线看 | 日韩久久久久 | 最新国产精品精品视频 | 欧美精品 在线观看 | 亚洲精品在线观看视频 | 久久精品中文字幕 | 国产亚洲二区 | 亚洲理论在线观看电影 | 欧美久久精品一级黑人c片 91免费在线视频 | www国产成人免费观看视频,深夜成人网 | 亚洲3p| 日韩免费视频 | 岛国精品 | 亚洲欧美一区二区三区情侣bbw | 妞干网福利视频 | 欧洲精品在线观看 | 欧美一区二区三区在线播放 | 超碰成人免费 | 成人不卡| 99久久久无码国产精品 | 国产精品无 | 久久亚洲欧美日韩精品专区 | 在线不卡视频 |