標籤:
緩衝可以形象得理解為副本。
靜態緩衝:是在新內容發布的同時就立刻產生相應內容的靜態頁面。
動態緩衝:是在新內容發布以後,並不預先產生相應的靜態頁面,直到對相應內容發出請求時,如果前台快取服務器找不到相應緩衝,就向後台內容管理伺服器發出請求,後台系統會產生相應內容的靜態頁面,使用者第一次訪問頁面時可能會慢一點,但是以後就是直接存取緩衝了。(動態緩衝和靜態緩衝相比更有優勢)
一:地址欄按斷行符號又分為兩種情況。
1.請求的URI在瀏覽器緩衝中未到期,此時,使用Firefox的firebug外掛程式在瀏覽器裡顯示的HTTP請求訊息頭如下:
Host 192.168.3.174:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Connection keep-alive
HTTP返回狀態顯示200 OK,但是,後台Nginx伺服器的access.log並沒有找到該請求的記錄,說明請求並沒有真正提交到HTTP伺服器。而是被瀏覽器發現緩衝中還有 未到期的檔案,直接把請求攔截了,firebug裡面顯示所謂的“要求標頭訊息”、“回應標頭訊息”都是瀏覽器“偽造”的。這種重新整理,使用的網路流量是最小 的,可以說完全沒有,時間消耗也是最少的。就像你找到一盒沒有到期的牛奶,覺得肯定沒有問題,誰都沒告訴就喝了。
2.是請求的URI在瀏覽器緩衝中已到期,此時,firebug顯示的HTTP請求訊息頭如下:
Host 192.168.3.174:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Connection keep-alive
If-Modified-Since Mon, 04 Jul 2011 10:12:40 GMT
多了一行If-Modified-Since,後台Nginx伺服器的access.log也找到了該請求的記錄,說明瀏覽器對這種情況的處理方法是:再 問一下伺服器,請求的URI在某個時間之後有沒有被修改過,而這個時間是由上次HTTP響應的Last-Modified決定的。伺服器評鑑之後,沒有修 改的話,返回304 Not Modified,瀏覽器收到後,從緩衝裡讀出內容;有修改的話,返回200 OK,並返回新的內容。這種情況,就像你找到一盒已經到期的牛奶,於是問別人,還能不能喝,如果別人說可以,你就把它喝了,如果別人說不行,那你得就另外 找一盒新鮮的牛奶。
二、(瀏覽器裡面的F5:表示擷取未到期的頁面緩衝???。先會判斷緩衝是否到期)至於F5重新整理,其HTTP請求訊息頭如下:
Host 192.168.3.174:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Connection keep-alive
If-Modified-Since Mon, 04 Jul 2011 10:12:40 GMT
Cache-Control max-age=0
又多了一行Cache-Control: max-age=0,意思是說,我不管瀏覽器緩衝中的檔案到期沒有,都去伺服器詢問一下,相當於上次HTTP響應的Expires暫時失效。伺服器的響應 處理流程同上。這種情況,就像你找到一盒牛奶,沒有看它的有效期間,直接就問別人能不能喝。
三、Ctrl+F5重新整理,其HTTP請求訊息頭如下:
Host 192.168.3.174:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Pragma no-cache
Cache-Control no-cache
If-Modified-Since沒有了,Cache-Control換成了no-cache,此外Pragma行是為了相容HTTP1.0,作用與 Cache-Control: no-cache是一樣的。意思是,我不要緩衝中的檔案了,強制重新整理,直接到伺服器上重新下載,於是伺服器的響應處理與首次請求這個URI一樣,返回 200 OK和新的內容。這種重新整理,使用的網路流量是最大的,也是最耗時的。這就像你雖然發現了一盒牛奶,但是把它扔掉了,直接去買一盒新的。
部分轉自http://www.cnblogs.com/mofish/archive/2012/06/08/2541604.html
瀏覽器重新整理緩衝機制