日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HTTP缓存相关知识介绍

發(fā)布時間:2023/12/10 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTTP缓存相关知识介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、概述

HTTP協(xié)議的緩存是通過6個報文頭完成的,通過兩層協(xié)商使web資源能夠不那么頻繁地在服務器與客戶端之間傳遞,從而節(jié)約了流量,提高瀏覽速度。以從客戶端到服務器的順序,第一層協(xié)商為Cache-Control與Expires;第二層協(xié)商為Last-Modified與Etag。

2、相關的報文頭

2.1 Cache-Control

請求/響應報文頭,緩存控制字段,也就是用于給資源生命期,是http/1.1引入的屬性。Cache-Control的取值可細分為兩類,一類是對緩存有直接決定性的值,他們會導致后續(xù)的第二層協(xié)商被跳過,包括:no-store、public、private;另一類是類似Expires的值,只是規(guī)定了有效期,后續(xù)的第二層協(xié)商不受影響,包括no-cache、max-age=x、s-maxage=x。

Cache-Control的取值如下:

形如:

Cache-Control:max-age=0

2.2 Expires

響應報文頭,代表資源過期時間,由服務器返回提供,是http1.0的屬性,在與Cache-Control共存的情況下,優(yōu)先級要低。Expires的功能基本與Cache-Control的max-age相似,但它是指定一個過期時間點,而Cache-Control的max-age是指定了過期前的秒數(shù)。

形如:

Expires:Fri,?10?Apr?2020?16:30:04?GMT

2.3 Last-Modified

響應報文頭,資源最新修改時間,由服務器告訴瀏覽器。

形如:

Last-Modified:Mon,?23?Mar?2020?18:39:50?GMT

2.4 If-Modified-Since

請求報文頭,與Last-Modified相對應,瀏覽器把服務器最后一次給的Last-Modified返回,服務器將以此進行對比,判斷資源是否需要更新。

形如:

If-Modified-Since:Fri,?10?Apr?2020?14:45:24?GMT

2.5 Etag

響應報文頭,資源內容唯一標識,由服務器告訴瀏覽器。

形如:

Etag:58b66ccbe349d0d931df877c00d8101d037243dc

2.6 If-None-Match

請求報文頭,與Etag相對應,瀏覽器把服務器最后一次給的Etag返回,服務器將以此進行對比,判斷資源是否需要更新。

形如:

If-None-Match:58b66ccbe349d0d931df877c00d8101d037243dc

3、 協(xié)商流程

以下假定資源已經(jīng)獲取過一次,并且運行在HTTP/1.1環(huán)境下,現(xiàn)在進行二次訪問。

流程圖如下:

說明:

  • 客戶端是有可能因為緩存原因不向服務器發(fā)起任何請求的,圖中200狀態(tài)(from cache)就是這種情況。

  • 服務器根據(jù)回傳的If-Modified-Since與Last-Modified比對,如果不同則說明這個文件修改過,需要更新。但在這種判斷精度是秒,如果是一秒內的改動,就需要進一步對比回傳的If-None-Match與ETag的值。

  • 服務器返回304的意思就是不需要重新獲取新資源,直接使用本地緩存即可。

4、緩存多久合適

生存時間(TTL)指令告訴瀏覽器應該緩存某個資源多久,即Cache-Control或Expires的值。找到給定資源的最佳TTL值并沒有完美的科學方法,只能憑經(jīng)驗給出一些指導原則。

指導原則:

  • 純靜態(tài)內容,例如圖片或帶版本的數(shù)據(jù),可以在客戶端永久緩存;

  • CSS/JS和個性化資源,緩存時間大約是會話(交互)平均時間的兩倍;

  • 其他類型資源取決于新數(shù)據(jù)對舊數(shù)據(jù)的容忍極限。

5、瀏覽器操作對HTTP緩存的影響

6、緩存改進方案

  • md5/hash緩存:通過不緩存html,為靜態(tài)文件添加MD5或者hash標識,解決瀏覽器無法跳過緩存過期時間主動感知文件變化的問題。

  • CDN緩存:CDN是構建在網(wǎng)絡之上的內容分發(fā)網(wǎng)絡,依靠部署在各地的邊緣服務器,通過中心平臺的負載均衡、內容分發(fā)、調度等功能模塊,使用戶就近獲取所需內容,降低網(wǎng)絡擁塞,提高用戶訪問響應速度和命中率。

IT技術分享社區(qū)

個人博客網(wǎng)站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協(xié)助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

總結

以上是生活随笔為你收集整理的HTTP缓存相关知识介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。