国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

瀏覽器緩存小結

pepperwang / 2050人閱讀

摘要:原文鏈接瀏覽器緩存瀏覽器緩存強緩存協商緩存強緩存釋義客戶端第一次問服務器要某個資源時,服務器丟還給客戶端所請求的這個資源同時,告訴客戶端將這個資源保存在本地,并且在未來的某個時點之前如果還需要這個資源,直接從本地獲取就行了,不用向服務器請求

原文鏈接:瀏覽器緩存

瀏覽器緩存 強緩存 & 協商緩存

強緩存
釋義: 客戶端第一次問服務器要某個資源時,服務器丟還給客戶端所請求的這個資源同時,告訴客戶端將這個資源保存在本地,并且在未來的某個時點之前如果還需要這個資源,直接從本地獲取就行了,不用向服務器請求.這種方式緩存下來的資源稱為強緩存.

Expires & Cache-Control:max-age

Expires:
該字段是http1.0時的規范,值為一個絕對時間的GMT格式的時間字符串,代表緩存資源的過期時間,在這個時點之前,即命中緩存.

Cache-Control:
該字段是http1.0時的規范,值為一個絕對時間的GMT格式的時間字符串,代表緩存資源的過期時間,在這個時點之前,即命中緩存.
參數:
no-cache: 如果請求頭部包含no-cache指令,表示客戶端不接收緩存過的響應.中間緩存服務器必須將請求轉發給給源服務器. 瀏覽器強制刷新(window下ctrl+F5)就是這個原理,所以的請求都設置no-cache
no-store: 暗示請求和響應包含機密信息,不能進行緩存.
區分: no-store才是真正的不緩存
max-age: 該指令用來標識緩存資源的最大有效期. 如果max-age=0,就會向源服務器發送請求進行緩存資源新鮮度的驗證.瀏覽器普通刷新F5

cache-directive 作為請求首部時,cache-directive 的可選值有:

字段名稱 說明
no-cache 告知(代理)服務器不直接使用緩存,要求向原服務器發起請求.
no-store 所有內容都不會保存到緩存或者Internet臨時文件中.
max-age=delta-seconds 告知 (代理)服務器,客戶端希望接收一個存在時間不大于detal-seconds秒的資源.
max-stale[=delta-seconds 告知 (代理)服務器,客戶端愿意接收一個超過緩存時間的資源,若有定義delta-seconds則為delta-seconds,若沒有則為任意超出的時間.
min-fresh=delta-seconds 告知 (代理)服務器,客戶端希望接收一個在小于delta-seconds秒內被更新過的資源.
no-transform 告知 (代理)服務器,客戶端希望獲取實體數據沒有被轉換(比如壓縮)過的資源.
only-if-cached 告知 (代理)服務器,客戶端希望獲取換成的內容(若有),而不用向原來服務器請求.
cache-extension 自定義擴展值,若服務器不識別改值則會被忽略.

cache-directive 作為響應首部時,cache-directive 的可選值有:

字段名稱 說明
public 表明任何情況下都得緩存該資源(即使是需要HTTP認證的資源).
Private[="field-name"] 表明返回報文中全部或者部分(若指定field-name,則為field-name的字段數據)僅開放給某些用戶(服務器指定的share-user,如代理服務器)做緩存使用,其他用戶則不能緩存這些數據.
no-cache 不直接使用緩存,要向服務器發起(新鮮度校驗)請求.
no-store 所有內容都不會保存到緩存或者Internet臨時文件中.
no-transform 告知客戶端緩存文件時不得對實體數據做任何改變.
only-if-cached 告知(代理)服務器,客戶端希望獲取緩存的內容(如果有),而不向原來服務器發起請求.
must-revalidate 當前資源一定是向原服務器發起驗證請求的,若請求失敗會返回504(而非代理服務器上的緩存).
proxy-revalidate 與must-revalidate類似,但僅能應用于共享緩存(如代理).
max-age=delta-seconds 告知客戶端,該資源在delta-seconds秒內是新鮮的,無需向 服務器發起請求.
s-max-age=delta-seconds 同max-age,但僅用于共享緩存(如代理).
cache-extension 自定義擴展值,若服務器不識別改值則會被忽略.
在請求頭中max-age=0與no-cache的區別?
   返回的狀態來看:no-cache都是200,而max-age可能是304(如果瀏覽器有緩存).  
   請求參數:max-age請求頭一般會攜帶If-Modified-Since或If-None-Match字段進行新鮮度驗證,而no-cache不會攜帶. F5刷新是max-age=0來實現,而強制刷新(Ctrl+F5)是通過no-cache實現.  

異同: Expires是HTTP 1.0+的首部,用來指定一個絕對的過期日期,依賴客戶端時間設置的準確性,緩存時間是相對服務器上的時間而言的.  
max-age是HTTP/1.1的Cache-Control的一個字段,用來指定文檔的最大使用時間.

協商緩存
釋義: 客戶端第一次問服務器要某個資源時,服務器丟還給客戶端所請求的這個資源同時,將該資源的一些信息(文件摘要、或者最后修改時間)也返回給客戶端,告訴客戶端將這個資源緩存在本地.當客戶端下一次需要這個資源時,將請求以及相關信息(文件摘要、或者最后修改時間)一并發送給服務器,由服務器來判斷客戶端緩存的資源是否需要更新:如不需要更新,就直接告訴客戶端獲取本地緩存資源;如需要更新,則將最新的資源連同相應的信息一并返回給客戶端.

Last-Modified & If-Modified-Since & Etag & If-None-Match

Last-Modidied & If-Modified-Since:

Last-Modified: 為實體首部字段,值為資源最后更新時間,隨服務器response返回.

If-Modified-Since: 為請求首部字段,通過比較兩個時間來判斷資源在兩次請求期間是否有過修改,如果沒有修改,則命中協商緩存,瀏覽器從緩存中獲取資源;如果有過修改,則服務器返回資源,同時返回新的Last-Modified時間.

Etag & If-None-Match:

Etag: 為相應頭部字段,表示資源內容的唯一標識,隨服務器response返回.

If-None-Match: 為請求頭部字段,服務器通過比較請求頭部的If-None-Match與當前資源的ETag是否一致來判斷資源是否在兩次請求之間有過修改,如果沒有修改,則命中協商緩存,瀏覽器從緩存中獲取資源;如果有過修改,則服務器返回資源,同時返回新的ETag.

不能緩存的請求

HTTP信息頭中包含Cache-Control:no-cache,pragma:no-cache(HTTP1.0),或Cache-Control:max-age=0等告訴瀏覽器不用緩存的請求. Cache-Control: no-cache:這個很容易讓人產生誤解,使人誤以為是響應不被緩存.實際上Cache-Control: no-cache是會被緩存的,只不過每次在向客戶端(瀏覽器)提供響應數據時,緩存都要向服務器評估緩存響應的有效性.

需要根據Cookie,認證信息等決定輸入內容的動態請求是不能被緩存的.

經過HTTPS安全加密的請求.

POST請求無法被緩存.

HTTP響應頭中不包含Last-Modified/Etag,也不包含Cache-Control/Expires的請求無法被緩存.

瀏覽器緩存機制示意圖

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/99455.html

相關文章

  • 覽器緩存小結

    摘要:告知瀏覽器我希望內容來自緩存我并不關心被緩存響應是否是新鮮的。客戶端請求驗證緩存的有效性。 因為最近面試經常會被問到304緩存的問題,因此在網上搜集了各種資料,小記一下 緩存有瀏覽器緩存,代理服務器緩存,服務端緩存等,這里著重記一下瀏覽器緩存 瀏覽器第一次像服務器發起請求時,如果有緩存,瀏覽器在返回信息里面會帶上相應的緩存策略,下面介紹一下有哪些常用的緩存策略。 Expires 過期...

    raise_yang 評論0 收藏0
  • 高性能JavaScript(文檔)

    摘要:最近在全力整理高性能的文檔,并重新學習一遍,放在這里方便大家查看并找到自己需要的知識點。 最近在全力整理《高性能JavaScript》的文檔,并重新學習一遍,放在這里方便大家查看并找到自己需要的知識點。 前端開發文檔 高性能JavaScript 第1章:加載和執行 腳本位置 阻止腳本 無阻塞的腳本 延遲的腳本 動態腳本元素 XMLHTTPRequest腳本注入 推薦的無阻塞模式...

    RayKr 評論0 收藏0
  • http 緩存小結

    摘要:為了優化性能,使用緩存是一種比較常見的手段。由于篇幅原因,本篇重點講述緩存。緩存未命中達緩存的請求沒有副本可用,而被轉發給原始服務器,與緩存命中相反。協商緩存協商緩存是在用戶強緩存失敗的情況下,向服務器端進行再驗證。 為了優化性能,使用緩存是一種比較常見的手段。那么如何實現緩存以及如何避免緩存呢,都是要探討的話題。可以從三個部分:http 緩存、cookie、localStorage&...

    miguel.jiang 評論0 收藏0
  • Web站點緩存技術小結

    摘要:導言本文將列舉站點常用緩存技術的基本概念與特點,為想要了解緩存技術的讀者們提供提綱式的技術介紹。這些指令指定用于阻止緩存對請求或響應造成不利干擾的行為。參考連接網站緩存技術總結高性能網站的關鍵緩存靜態資源緩存 導言:本文將列舉web站點常用緩存技術的基本概念與特點,為想要了解web緩存技術的讀者們提供提綱式的技術介紹。 在互聯網迅速發展的今天,一個互聯網站點的請求量是十分驚人的,動輒上...

    printempw 評論0 收藏0
  • CDN小結

    摘要:二目的是一個經策略性部署的整體系統,從技術上全面解決由于網絡帶寬小用戶訪問量大網點分布不均而產生的用戶訪問網站響應速度慢的根本原因。 一、CDN全稱:??Content Delivery Network或Content Ddistribute Network,即內容分發網絡。 ??二、目的:??CDN是一個經策略性部署的整體系統,從技術上全面解決由于網絡帶寬小、用戶訪問量大、網點分布不...

    cod7ce 評論0 收藏0

發表評論

0條評論

pepperwang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<