亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > 管理維護 > 正文

服務器網頁緩存的深入分析

2024-09-10 14:18:53
字體:
來源:轉載
供稿:網友

Expires、Cache-Control、Last-Modified、ETag是RFC 2616(HTTP/1.1)協議中和網頁緩存相關的幾個字段。前兩個用來控制緩存的失效日期,后兩個用來驗證網頁的有效性。要注意的是,HTTP/1.0有一個功能比較弱的緩存控制機制:Pragma,使用HTTP/1.0的緩存將忽略Expires和Cache-Control頭。我們這里以Apache2.0服務器為例,只討論HTTP/1.1協議。

Expires

Expires字段聲明了一個網頁或URL地址不再被瀏覽器緩存的時間,一旦超過了這個時間,瀏覽器都應該聯系原始服務器。RFC告訴我們:“由于推斷的失效時間也許會降低語義透明度,應該被謹慎使用,同時我們鼓勵原始服務器盡可能提供確切的失效時間。”

對于一般的純靜態頁面,如html、gif、jpg、css、js,默認安裝的Apache服務器,不會在響應頭添加這個字段。Firefox瀏覽器接受到相應后,如果發現沒有Expires字段,瀏覽器根據文件的類型和“Last-Modified”字段來推斷出一個合適的失效時間,并存儲在客戶端。推測出的時間一般是接受到響應時間后的三天左右。

Apache的expires_module模塊可以在Http響應頭部自動加上Expires字段。在Apache的httpd.conf文件中進行如下配置:

#啟用expires_module模塊
LoadModule expires_module modules/mod_expires.so
# 啟用有效期控制
ExpiresActive On
# GIF有效期為1個月
ExpiresByType image/gif A2592000
# HTML文檔的有效期是最后修改時刻后的一星期
ExpiresByType text/html M604800
#以下的含義類似
ExpiresByType text/css “now plus 2 month”
ExpiresByType text/js “now plus 2 day”
ExpiresByType image/jpeg “access plus 2 month”
ExpiresByType image/bmp “access plus 2 month”
ExpiresByType image/x-icon “access plus 2 month”
ExpiresByType image/png “access plus 2 month”

對于動態頁面,如果在頁面內部沒有通過函數強制加上Expires,例如header(”Expires: ” . gmdate(”D, d M Y H:i:s”) . ” GMT”),Apache服務器會把Wed, 11 Jan 1984 05:00:00 GMT
作為Expires字段內容,返回給瀏覽器。即認為動態頁面總是失效的。而瀏覽器仍然會保存已經失效的動態頁面。

可以發現Firefox瀏覽器總是緩存所有頁面,不管失效、不失效還是沒有聲明失效時間。即使緩存中聲明了一個網頁的實效日期是1970-01-01 08:00:00,瀏覽器仍然會發送該文件在緩存中的Last-Modified和ETag字段。 如果在服務器端驗證通過,返回304狀態,瀏覽器就還會使用此緩存。

Cache-Control

Cache-Control字段中可以聲明多些元素,例如no-cache, must-revalidate, max-age=0等。這些元素用來指明頁面被緩存最大時限,如何被緩存的,如何被轉換到另一個不同的媒介,以及如何被存放在持久媒介中的。但是任何一個Cache-Control指令都不能保證隱私性或者數據的安全性。“private”和“no-store”指令可以為隱私性和安全性方面提供一些幫助,但是他們并不能用于替代身份驗證和加密。

Apache的mod_cern_meta模塊允許文件級Http響應頭部的控制,同時它也可以配置Cache-Control頭(或任何其他頭)。響應頭文件是放在原始目錄的子目錄中,根據原始文件名所命名的一個文件。具體用法請參閱Apache的官方網站。

其中Cache-Control : max-age表示失效日期。如果沒有啟動mod_cern_meta模塊,Apache服務器會把Expires字段中的日期換算成以秒為單位的一個delta值,賦值給max-age。如果啟動mod_cern_meta模塊,并且配置了max-age值,Apache會將這個覆蓋Expires字段。同時,max-age隱含了Canche-Control: public。這樣瀏覽器接受到的Cache-Control : max-age和Expires值就是一致的。

如果失效日期Cache-Control : max-ag=0或者是負值,瀏覽器會在對應的緩存中把Expires設置為1970-01-01 08:00:00。

Last-Modified

Last-Modified和ETag是條件請求(Conditional Request)相關的兩個字段。如果一個緩存收到了針對一個頁面的請求,它發送一個驗證請求詢問服務器頁面是否已經更改,在HTTP頭里面帶上”ETag”和”If Modify Since”頭。服務器根據這些信息判斷是否有更新信息,如果沒有,就返回HTTP 304(Not Modify);如果有更新,返回HTTP 200和更新的頁面內容,并且攜帶新的”ETag”和”Last-Modified”。

使用這個機制,能夠避免重復發送文件給瀏覽器,不過仍然會產生一個HTTP請求。

一般純靜態頁面本身都會有Last-Modified信息,Apache服務器會讀取頁面文件中的Last-Modified信息,并添加到http響應頭部。

對于動態頁面,如果在頁面內部沒有通過函數強制加上Last-Modified,例如header(”Last-Modified: ” . gmdate(”D, d M Y H:i:s”) . ” GMT”),Apache服務器會把當前時間作為Last-Modified,返回給瀏覽器。

無論是純靜態頁面還是動態頁面,Firefox瀏覽器巧妙地按照接受到服務器響應的時間設置緩存頁面的Last-Modified,而不是按照http響應頭部中的Last-Modified字段。

ETag

既然有了Last-Modified,為什么還要用ETag字段呢?因為如果在一秒鐘之內對一個文件進行兩次更改,Last-Modified就會不正確。因此,HTTP/1.1利用Entity Tag頭提供了更加嚴格的驗證。

Apache服務器默認情況下,會對所有的靜態、動態文件的響應頭添加ETag字段。

在Apache的httpd.conf文件中可以通過FileETag指令配置該選項。FileETag指令配置了當文檔是基于一個文件時用以創建Etag(entity tag)響應頭的文件的屬性。在Apache 1.3.22及以前,ETag的值是對文件的索引節(INode),大?。⊿ize)和最后修改時間(MTime)進行Hash后得到的。 如果一個目錄的配置包含了‘FileETag INode MTime Size’而其一個子目錄包含了‘FileETag -INode’那么這個子目錄的設置(并會被其下任何沒有進行覆蓋的子目錄繼承)將等價于‘FileETag MTime Size’。

在多臺負載平衡的服務器環境下,同一個文件會有不同的etag或者文件修改日期,瀏覽器每次都會重新下載。設置‘FileETag None’可以使響應頭不再包含ETag字段。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩视频欧美视频| 国产美女精品免费电影| 亚洲国产欧美在线成人app| 亚洲国产精品电影在线观看| 亚洲福利视频二区| 亚洲欧美一区二区三区在线| 中文字幕亚洲无线码在线一区| 国内精品久久久久久中文字幕| 午夜精品三级视频福利| 国产精品爽爽ⅴa在线观看| 精品色蜜蜜精品视频在线观看| 日本免费在线精品| 亚洲欧美中文日韩在线v日本| 亚洲精品福利在线| 在线一区二区日韩| 日韩在线视频免费观看| 亚洲aa中文字幕| 精品亚洲国产成av人片传媒| 亚洲精品免费一区二区三区| 国产日韩欧美视频在线| 在线观看精品自拍私拍| 日韩精品久久久久久福利| 亚洲综合成人婷婷小说| 国产精品久久久久久久久久久久久久| 国产精品久久久久久久久久久不卡| 欧美成人精品一区二区| 亚洲xxxxx| www.日韩视频| 国产精品吊钟奶在线| 亚洲一区二区三区777| 国产精品丝袜白浆摸在线| 国产91色在线免费| 欧美一区二区大胆人体摄影专业网站| 在线观看欧美视频| 亚洲自拍在线观看| 91精品久久久久久久久| 久久久国产精彩视频美女艺术照福利| 亚洲一区二区自拍| 国产综合香蕉五月婷在线| 中文字幕一区二区三区电影| 亚洲第一精品电影| 国产精品偷伦免费视频观看的| 91精品国产综合久久久久久蜜臀| 欧美综合一区第一页| 久久免费视频这里只有精品| 国产精品久久av| 成人久久精品视频| 久久天天躁狠狠躁夜夜爽蜜月| 国产脚交av在线一区二区| 91性高湖久久久久久久久_久久99| 欧美大全免费观看电视剧大泉洋| 日韩欧美在线视频日韩欧美在线视频| 中文字幕自拍vr一区二区三区| 国自产精品手机在线观看视频| 亚洲美女福利视频网站| 久久九九热免费视频| 日韩精品视频免费在线观看| 日韩av影视综合网| 91精品综合久久久久久五月天| 国产丝袜一区视频在线观看| 黑人狂躁日本妞一区二区三区| 国产成人aa精品一区在线播放| 久久久中精品2020中文| 91中文在线观看| 日韩色av导航| 欧美孕妇毛茸茸xxxx| 国产精品大陆在线观看| 日韩精品免费在线视频| 亚洲电影免费观看高清完整版在线| 国产精品视频免费观看www| 欧美不卡视频一区发布| 国产福利视频一区二区| 成人免费高清完整版在线观看| 最近2019中文字幕一页二页| 91精品国产91久久久久福利| 北条麻妃一区二区在线观看| 另类视频在线观看| 日韩精品在线观看一区二区| 欧美大片在线看免费观看| 91亚洲精品久久久| 欧美精品免费播放| 日韩精品在线观看视频| 亚洲网站在线播放| 欧美怡红院视频一区二区三区| 亚洲欧美日本另类| 久久91亚洲精品中文字幕| 欧美精品久久久久久久久久| 欧美精品在线观看91| 欧美黑人狂野猛交老妇| 中日韩美女免费视频网站在线观看| 日韩电影在线观看永久视频免费网站| 日韩电影免费观看中文字幕| 搡老女人一区二区三区视频tv| 欧美日韩国产一区二区三区| 69久久夜色精品国产7777| 国产精品三级美女白浆呻吟| 高清欧美性猛交xxxx黑人猛交| 亚洲a级在线播放观看| 亚洲色图美腿丝袜| 国产精品海角社区在线观看| 国产精品视频免费观看www| 亚洲va码欧洲m码| 欧美xxxx综合视频| 最近2019好看的中文字幕免费| 国产精品久久久久久久久久99| 一本久久综合亚洲鲁鲁| 欧美一级淫片播放口| 日韩最新免费不卡| 日本一区二区在线免费播放| 国语自产精品视频在线看| 国产精品久在线观看| 欧美日韩免费区域视频在线观看| 97色在线观看免费视频| 国产成人黄色av| 亚洲电影第1页| 91高清视频免费观看| 亚洲视频一区二区三区| 精品视频中文字幕| 欧美日韩国产第一页| 精品色蜜蜜精品视频在线观看| 一本大道香蕉久在线播放29| 在线国产精品播放| 亚洲欧美精品伊人久久| 日韩av影片在线观看| 亚洲男子天堂网| 中文字幕亚洲一区二区三区五十路| 中文字幕日韩视频| 国产日韩欧美视频| 欧美大尺度在线观看| 精品亚洲一区二区| 91久久精品一区| 91亚洲国产成人精品性色| 久久久久久久久亚洲| 午夜精品国产精品大乳美女| 欧美一区深夜视频| 日韩av一区二区在线观看| 亚洲精品国产欧美| 欧美成人午夜免费视在线看片| 51精品在线观看| 精品久久久久久中文字幕大豆网| 国产精品一区二区久久国产| 亚洲第一精品夜夜躁人人爽| 久久精品国产96久久久香蕉| 国产成人精品久久二区二区91| 欧美电影免费看| 亚洲成年人在线播放| 97精品视频在线| 亚洲电影免费观看高清完整版| 日本高清视频一区| 91精品国产高清久久久久久| 国产精品美女999| 亚洲字幕在线观看| 国产精品手机播放| 亚洲资源在线看| 亚洲美女av网站| 91大神在线播放精品| 日韩精品免费在线视频| 2021久久精品国产99国产精品| 日韩色av导航| 欧美性高潮在线| 在线播放日韩欧美| 国产精品稀缺呦系列在线| 欧美日韩一区二区三区在线免费观看| 国产精品一区二区三区成人|