<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          六、HTTP協議中的緩存

          2019-10-17    seo達人

          一、緩存簡介

          緩存無處不在,瀏覽器端的緩存、服務器端的緩存、代理服務器的緩存、對象緩存、數據庫也有緩存……HTTP中具有緩存功能的是瀏覽器緩存和代理服務器緩存。下面說一下緩存的優點:



          1.減少冗余的數據傳輸,節省了傳輸時間



          2.減少服務器的負擔,大大提高了網站的性能



          3.加快了客戶端加載網頁的速度



          二、使用Fiddler如何查看緩存的Header

          與緩存相關的內容放在Header中的Cache項里;Requests和Responses均是這樣。如圖:







          三、緩存的新鮮度(通過什么方式判斷其是否,如何刷新緩存)

          Web服務器通過兩種方式判斷瀏覽器緩存是否:



          (1)瀏覽器把緩存文件的最后修改時間通過Header“If-Modified-Since”項傳遞給Web服務器。



          (2)瀏覽器把緩存文件的ETag通過Header“If-None-Match”項傳遞給Web服務器。



          簡單描述一下,瀏覽器端想請求一個文檔,它首先檢查本地緩存,發現存在這個文檔的緩存,獲取緩存文檔的最后修改時間,發送請求,將值放在Header中的“If-Modified-Since”項傳遞給Web服務器。Web服務器接收到請求后,將服務器的文檔修改時間(Last-Modified)與HTTP請求中的header中的“If-Modified-Since”值相比較,有兩種情況,如下面圖示:



          1.緩存有效:







          2.緩存無效:







          截圖舉例:







          上面說的是If-Modified-Since值對比的方式;下面說一下ETa'g;



          四、ETag

          ETag(Entity Tag):實體標簽;是根據實體內容生成的一段hash字符串(類似MD5之后的結果),可以用來標識資源的狀態(當資源發送變化時,ETag也會跟著改變);ETag是Web服務端產生的,然后通過response響應給瀏覽器。使用ETag,主要解決Last-Modified無法解決的情況:



          (1.某些服務器不能得到文件的If-Modified-Since來判斷文件是否更新;



          (2.某些文件修改非常頻繁,以小于秒的單元進行修改,而Last-Modified最單元為秒;



          (3.有些文件最后修改時間變化了,但是內容并沒有變化,所以我們不希望瀏覽器以為文件已變化了;







          五、與緩存相關的header

          字段名稱 釋義

          Cache-Control:max-age=0 以秒為單位

          If-Modified-Since:Fri, 11 Jan 2019 01:55:04 GMT 緩存文件的最后修改時間

          If-None-Match:W/"5c37f778-732" 緩存文件的Etag的值

          Cache-Control:no-cache 不使用緩存

          Pragma:no-cache 不使用緩存

          Cache-Control:public 響應被緩存,可以共享與多用戶

          Cache-Control:private 響應只能私有緩存,不可共享

          Cache-Control:no-store 絕對禁止緩存(機密、敏感文件)

          Cache-Control:max-age=60 60秒后緩存過期(相對時間)

          Date:Fri, 11 Jan 2019 01:55:04 GMT 當前發送時間

          Expires:Fri, 11 Jan 2019 01:55:04 GMT 緩存過期時間設置(絕對時間)

          Last-Modified:Fri, 11 Jan 2019 01:55:04 GMT 服務器端文件的最后修改時間

          Etag:W/"5c37f778-732" 服務器端文件的Etag值

          六、關于緩存的常識

          1.如何讓瀏覽器不使用緩存?



          答:【Ctrl+F5】快捷鍵強制刷新瀏覽器,讓瀏覽器不使用緩存;此時Fiddler抓包所看到的請求Header中都會帶有Cache-Control:no-cache;







          2.如何讓瀏覽器直接使用緩存,不請求服務器進行緩存驗證?



          答:第一次訪問與第二次訪問同一個網頁;(注意:第二次訪問時,輸入網址,直接回車)瀏覽器會直接使用有效的緩存,而不會發生HTTP請求去服務器驗證緩存,這種情況稱之為緩存命中;



          使用Fiddler抓包,現象:第一次訪問,有70多個Session;第二次訪問,僅40多個請求;



          3.瀏覽器均可在設置中設置不使用緩存;



          4.公有緩存、私有緩存的區別:一個可以多個不同的客戶端使用,一個只可唯一的客戶端使用;


          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計  ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務。

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合