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

資訊專欄INFORMATION COLUMN

《HTTP權威指南》學習-緩存

godruoyi / 1598人閱讀

摘要:意思告訴服務端當該對象在的時間在之后,我的緩存不新鮮給我新鮮的。否則我的緩存就是新鮮的不需要再提供了。較小緩存未命中的請求會被導向較大父緩存。則是絕對的最大過期時間。

緩存介紹 緩存的優點

減少冗余的數據傳輸 節省流量

緩解了網絡瓶頸的問題 不需高帶寬即可快速加載頁面

降低了對原始服務器的要求 服務器更快響應 避免過載

降低了距離時延 服務器較遠 降低傳輸時間

什么情況下使用緩存

冗余的數據傳輸(GET)

帶寬瓶頸

瞬間擁塞

。。。。。

緩存過程 一般緩存場景

緩存命中:客戶端請求緩存 緩存將緩存的副本發送給客戶端

緩存未命中:客戶端請求緩存 緩存中沒有對應的副本 請就被轉發給客戶端

緩存再驗證命中:客戶端請求緩存 緩存無法判斷該副本是否新鮮 發送驗證請求給服務端 服務器端返回仍是新鮮 緩存則將副本發送給客戶端

緩存處理步驟

網絡中接收抵達的請求報文

緩存對報文進行解析 提出URL和各種首部

查詢本地是否有可用副本 沒有就保存一份在本地

查看副本是否足夠新鮮 新鮮檢測

緩存會用新的首部和緩存的主題來構建報文

發送報文給客戶端

日志記錄事務

文檔過期

Expires首部 HTTP/1.0 絕對的過期時間
Cache-Control:max-age首部 HTTP/1.1 定義文檔的最大使用期,最大的合法生存時間(單位:s)

服務器再驗證

文檔過期了 并不代表其就不新鮮了 下一步就是服務器再驗證 詢問文檔是否發生變化
If-Modified-Since首部
If-None-Match:tags首部

If-Modified-Since

當瀏覽器第一次從服務端獲取數據響應為200的時候,緩存會獲取Last-Modified字段。
再驗證的時候,會在請求中加上If-Modified-Since字段,該字段的值就是Last-Modified字段的值。意思告訴服務端當該對象在的Last-Modified時間在If-Modified-Since之后,我的緩存不新鮮給我新鮮的。 否則我的緩存就是新鮮的不需要再提供了。
服務端一般會有三中響應:

再驗證命中:對象未修改 304 Not Modified(成功的再驗證比緩存未命中要快,失敗的再驗證幾乎和未命中速度一樣)

再驗證未命中:對象修改了 200 OK

對象被刪除:404 Not Found 緩存也會刪除對應副本

If-None-Match

但是也有一些特殊情況

文檔周期行重寫(后臺進程寫入)實際包含數據一樣 內容一樣 但是修改日期發生變化

文檔那個修改了 不過修改不重要 不需要緩存更新

有些服務器無法判斷其最后修改時間

有些服務器會在亞秒間隙發生變化 對于服務器來說 以一秒為單位的粒度修改日期就不夠了
這種情況 采用的方法就是打tag 加班本號


If-None-Mathc可以是多個,告訴服務器這些實體標簽對應的對象均有存在緩存副本

控制緩存的能力

服務器可以通過HTTP定義的幾種方式制定文檔緩存多久 按照優先級

Cache-Control:public

Cache-Control:no-store

Cache-Control:no-cache

Cache-Control:must-revalidate

Cache-Control:max-age

Expires:date

不添加過期時間 讓瀏覽器自己判斷
這里no-store緩存對響應進行復制,緩存會轉發響應,刪除對象

no-cache實際上是可以存儲在本地緩存中的,只是在于原始服務器進行新鮮驗證之前 不能提供給客戶端使用
Cache-Control:max-age還有一種
Cache-Control:s-maxage=3600 僅針對的是共享緩存
max-age=0則是不使用緩存 每次進入都要刷新
must-revalidate告訴緩存 在沒有跟服務器進行新鮮驗證的情況下 不允許提供

一個允許緩存的報文信息

一份不可以緩存的報文信息

命中率

緩存命中率:有緩存提供的請求占所有請求的比例
字節命中率:緩存字節占總字節比例

區別請求來自于緩存還是非緩存

對比響應的Date字段 如果響應的Date字段比當前時間較早 則說明來自緩存

代理與緩存 緩存的拓撲結構

私有緩存:瀏覽器緩存 (瀏覽器輸入chrome://cache/查看本地緩存)
共有代理緩存:緩存代理服務器

緩存的層次結構

實際情況中通常是層次化緩存。較小緩存未命中的請求會被導向較大父緩存。
靠近客戶端的地方使用較小廉價緩存,在更高層次中,則逐步采用更大,功能更強的緩存,來裝載多用戶共享的文檔

網狀緩存內容路由及對等緩存

網狀緩存也叫內容路由器:代理緩存之間會議更加復雜的方式對話,做出動態的緩存通信決定,決定于那個父緩存進行通話,或者決定徹底繞開緩存,直接連接原始服務器
其包含以下功能:

根據URL在父緩存或原始服務器回見進行動態選擇

根據URL動態選擇一個特定的父緩存

前往父緩存之前 在本地緩存中搜索一緩存的副本

允許其他緩存對其緩存的部分進行訪問 但不允許流浪訪問緩存
緩存的復雜關系允許不同的組織互為對等實體,緩存共享(兄弟緩存)。HTPP不支持兄弟緩存,因此還有一些協議(HTCP)快播P2P?

總結:與緩存相關的首部字段
首部字段 描述
Cache-Control public 響應可以被緩存(默認)
-- private 響應可以被瀏覽器緩存 但是不允許中繼緩存(CDN)緩存
-- no-store 禁止瀏覽器和中繼緩存進行緩存
-- no-cache 瀏覽器可以緩存 但是未經新鮮度檢查之前不能使用
-- max-age 一個以秒為單位數字,是一個相對時間。
Date+max-age則是絕對的最大過期時間。
Expires date HTTP/1.0標準的 絕對過期時間
Date date 只存在于response中 報文響應時候的時間
Last-Modified date 只存在于response中 文檔最后被修改的時間
If-Modified-Since date 只存在于request中 新鮮度度檢驗時候需要
查詢文檔是否在該時刻之后修改過
如果未修改過 更新緩存的文檔的Date,并且提供緩存副本
如果修改過 更新新的文檔,提供新的文檔
If-None-Match tag 只存在于request中 告訴服務端這些版本有對應的緩存
Pragma no-cache等 HTTP/1.0時代的首部字段 功能相當于Cache-Control

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

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

相關文章

  • [ 學習路線 ] 學完這些去阿里!GOGOGO

    摘要:以下知識點是前輩師兄總結基礎語義化標簽引進了一些新的標簽,特別注意等,注意的標題結構理解瀏覽器解析的過程,理解的樹形結構,及相應理解標簽在各個瀏覽器上的默認樣式代理樣式,理解中的重置樣式表的概念理解等功能性標簽理解標簽,理解文件提交過程推薦 以下知識點是前輩師兄總結 1、HTML/HTML5基礎: 1.0、語義化H5標簽1.1、H5引進了一些新的標簽,特別注意article...

    zhaochunqi 評論0 收藏0
  • [ 學習路線 ] 學完這些去阿里!GOGOGO

    摘要:以下知識點是前輩師兄總結基礎語義化標簽引進了一些新的標簽,特別注意等,注意的標題結構理解瀏覽器解析的過程,理解的樹形結構,及相應理解標簽在各個瀏覽器上的默認樣式代理樣式,理解中的重置樣式表的概念理解等功能性標簽理解標簽,理解文件提交過程推薦 以下知識點是前輩師兄總結 1、HTML/HTML5基礎: 1.0、語義化H5標簽1.1、H5引進了一些新的標簽,特別注意article...

    learn_shifeng 評論0 收藏0
  • 如果想成為一名頂尖的前端,這份書單你一定要收藏!

    摘要:其中負載均衡那一節,基本上是參考的權威指南負載均衡的內容。開發指南讀了一半,就是看這本書理解了的事件循環。哈哈創京東一本騙錢的書。 歡迎大家前往騰訊云+社區,獲取更多騰訊海量技術實踐干貨哦~ 本文由騰訊IVWEB團隊 發表于云+社區專欄作者:link 2014年一月以來,自己接觸web前端開發已經兩年多了,記錄一下自己前端學習路上看過的,以及道聽途說的一些書,基本上按照由淺入深來介紹...

    callmewhy 評論0 收藏0
  • 如果想成為一名頂尖的前端,這份書單你一定要收藏!

    摘要:其中負載均衡那一節,基本上是參考的權威指南負載均衡的內容。開發指南讀了一半,就是看這本書理解了的事件循環。哈哈創京東一本騙錢的書。 歡迎大家前往騰訊云+社區,獲取更多騰訊海量技術實踐干貨哦~ 本文由騰訊IVWEB團隊 發表于云+社區專欄作者:link 2014年一月以來,自己接觸web前端開發已經兩年多了,記錄一下自己前端學習路上看過的,以及道聽途說的一些書,基本上按照由淺入深來介紹...

    Scliang 評論0 收藏0

發表評論

0條評論

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