成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

前端百題斬之一文了解HTTP緩存

開發 前端
緩存是指代理服務器或客戶端本地磁盤內保存的資源副本,利用緩存可減少對源服務器的訪問,節省通信流量和通信時間。

[[415205]]

緩存是指代理服務器或客戶端本地磁盤內保存的資源副本,利用緩存可減少對源服務器的訪問,節省通信流量和通信時間。

瀏覽器緩存指的就是瀏覽器對之前請求過的文件進行緩存,以便在下一次訪問時重復使用,從而節省帶寬、提升訪問速度、降低服務器壓力。

今天所說的HTTP緩存機制就是利用HTTP響應頭將所請求的資源在瀏覽器中進行緩存,緩存方式主要分為兩種:強緩存、協商緩存。

3.1 強緩存

強緩存指的是在緩存時間內不會向服務器發起請求,只有過期之后才會向服務器發起請求,整個流程如下所示:

HTTP中存在兩個響應頭來表征強緩存,分別是:Expires、Cache-Control,下面對這兩個字段進行闡述。

3.1.1 Expires

Expires是HTTP1.0中的字段,是一個絕對時間,即服務器時間。瀏覽器檢查當前時間,如果還沒到失效時間就直接使用緩存文件。

3.1.2 Cache-Control

由于Expires存在服務器時間越客戶端時間不一致的問題,所以HTTP1.1中新增了Cache-Control字段(注意:如果同時存在cache-control和expires時,瀏覽器總是優先使用cache-control),通過設置max-age來不存一個相對時間,表示其在該相對時間內容有效。對于Cache-Control字段的常見取值如下所示:

  • private:默認值,表示客戶端可以緩存,中間代理、CDN等不能緩存此響應;
  • public:表示客戶端和代理服務器都可緩存;
  • max-age=xxx:緩存的內容將在xxx秒后失效;
  • no-cache:需要使用協商緩存來驗證緩存數據;
  • no-store:所有內容都不會緩存(包括協商緩存),每次都向服務器請求最新資源;
  • must-revalidate:在緩存過期前可以使用,過期后必須向服務器驗證。

3.1.3 為什么增加Cache-Control字段?

Expires字段存在一個問題,即該字段利用的是絕對時間,由于服務器時間與客戶端時間可能不一致,從而導致問題,所以新增了Cache-Control字段。

3.2 協商緩存

協商緩存都會向服務器發送請求,判斷緩存數據是否過期,過期的話會返回新的內容,沒有過期則使用本地的緩存數據。對于協商緩存主要利用兩個字段:Last-Modify、Etag,其整體流程如下所示:

注:圖片來源于(https://www.cnblogs.com/zhouwenhong/p/3928645.html)

3.2.1 Last-Modify

last-modified是HTTP1.0中的字段,是第一次請求資源時,服務器返回的字段,表示最后一次更新的時間。下一次瀏覽器請求資源時就發送if-modified-since字段。服務器用本地Last-modified時間與if-modified-since時間比較,如果不一致則認為緩存已過期并返回新資源給瀏覽器;如果時間一致則發送304狀態碼,讓瀏覽器繼續使用緩存。

3.2.2 Etag

Etag是HTTP1.1中新增的字段,是資源的實體標識(哈希字符串),當資源內容更新時,Etag會改變。服務器會判斷Etag是否發生變化,如果變化則返回新資源,否則返回304。

3.2.3 為什么增加Etag字段?

在Last-Modify字段存在情況下又新增Etag字段的理由主要有以下幾點: 

  • 一些文件進行更改后,其內容并沒有發生變化,僅僅影響了修改時間,這時候不應該認為緩存過期了;
  • 某些文件修改太多頻繁(秒級別以內),但是If-Modify-Since能檢查的精度是秒級別,此時會導致問題;
  • 某些服務器并不能精確得到文件的最后修改時間。

本文轉載自微信公眾號「執鳶者」,可以通過以下二維碼關注。轉載本文請聯系執鳶者公眾號。

 

責任編輯:武曉燕 來源: 執鳶者
相關推薦

2018-09-28 14:06:25

前端緩存后端

2020-02-02 15:14:24

HTTP黑科技前端

2021-10-19 22:23:05

typeof方式Instanceof

2021-05-09 22:00:59

TypeofInstanceof運算符

2021-06-07 07:01:43

js關鍵字運行

2020-08-27 07:34:50

Zookeeper數據結構

2021-05-30 19:02:59

變量對象上下文

2021-08-02 06:49:46

HTTP網絡模型

2021-06-09 07:01:30

前端CallApply

2021-12-02 06:58:02

項目事件循環

2021-07-29 06:56:35

前端事件循環

2021-07-14 07:00:53

瀏覽器技巧前端

2023-04-26 15:43:24

容器編排容器編排工具

2023-11-20 08:18:49

Netty服務器

2022-02-25 07:34:36

MQTT協議RabbitMQ

2022-06-08 08:11:56

威脅建模網絡安全網絡攻擊

2025-05-23 09:38:54

JWT開發Go

2023-11-06 08:16:19

APM系統運維

2022-11-11 19:09:13

架構

2021-10-18 09:01:01

前端賦值淺拷貝
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产免费一区 | 国产欧美日韩在线一区 | 中文字幕日韩一区 | 精品国产91亚洲一区二区三区www | 亚洲毛片在线观看 | 国产精品欧美精品日韩精品 | 365夜爽爽欧美性午夜免费视频 | 欧美激情视频一区二区三区免费 | 黄 色 毛片免费 | 99tv| 亚洲一区成人 | 色本道| 欧美成人激情 | 日韩小视频 | 91亚洲精品国偷拍自产在线观看 | 黄色大片在线免费观看 | 91最新入口| 日日天天 | 成人做爰www免费看 午夜精品久久久久久久久久久久 | 国产精品久久久久久吹潮日韩动画 | 中文字幕亚洲欧美日韩在线不卡 | 国产精品黄视频 | 狠狠影院 | 亚洲视频在线免费 | 免费日韩av网站 | 免费艹逼视频 | 亚洲高清在线 | 午夜影院在线观看 | 亚洲精品片 | 天堂久 | 激情欧美日韩一区二区 | 中文字幕视频一区 | 日韩av大片免费看 | 日韩高清中文字幕 | 久久精品视频一区二区三区 | 国产一区二区自拍 | 高清人人天天夜夜曰狠狠狠狠 | 玖玖视频国产 | 91pron在线| 视频一区二区三区中文字幕 | 中文字幕免费视频 |