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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

浏览器的缓存控制

發布時間:2023/12/15 HTML 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浏览器的缓存控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? 瀏覽器第一次向服務器請求資源時,服務器會發送完整的文件,并且在發送文件時還附帶一些額外信息——比如過期時間:Expires:Mon,10 Dec 1999 ?02:25:22GMT。瀏覽器可以把這個額外信息保存在本地(緩存)。

  瀏覽器在請求已經訪問過的URL時,會判斷是否使用緩存,而瀏覽器的緩存控制分為強緩存和協商緩存;協商緩存必須配合強緩存使用。

瀏覽器的第一次緩存:

首先瀏覽器第一次跟服務器請求一個資源,服務器在返回這個資源和response header的同時,會根據開發者要求或者瀏覽器默認,在response的header加上相關的http response header。?

?

瀏覽器再次請求時

?

一、當瀏覽器對 某個資源的請求命中了強緩存時,利用Expire或Cache-Control這兩個http response header實現:

1:Expire:描述的是一個絕對時間,根據的是客戶端的時間。用GMT格式的字符串表示,如:Expires:Mon,10 Dec 1999 ?02:25:22GMT,下次瀏覽器再請求同一個資源時,先從客戶端緩存中尋找,找到這個資源后,拿出它的Expire跟當前的請求時間比較,如果請求時間在Expire指定的失效時間之前,就能命中緩存,這樣就不用再次到服務器上去緩存一遍,節約了資源,但正是因為 是絕對時間,如果客戶端時間被隨意更改一下,這個機制就失效了

所以我們需要Cache-Control:

2、Cache-Control描述的是一個相對時間,在進行命中緩存時,都是利用瀏覽器時間判斷,這兩個header可以只啟用一個,也可以同時啟用,當response header中同時存在兩者時,Cache-Control優先級高于Expire

二、當瀏覽器對某個資源的請求沒有命中強緩存,就會發一個請求到服務器,驗證協商緩存是否命中。如果命中,則還是從客戶端加載,協商緩存利用的是Last-Modified,if-Mondified-Since和Etag、if-None-Match這兩對header來管理

1.Last-Modified:原理和Expire相同,區別是它根據服務器的時間返回的header來判斷緩存是否存在,但是有時候也會服務器上資源有變化,但是最后修改時間卻沒有變化的情況,這時候需要ETag

2、Etag、if-None-Match:原理上也是一樣,區別是瀏覽器跟服務器請求同一個資源,服務器在返回同一個資源的同時,在response的header加上ETag的header,這個header是服務器根據當前請求的資源生成的一個唯一標識,這個唯一標識就是一個字符串,只有資源有變化,這個字符串就不相同。

? ??

轉載于:https://www.cnblogs.com/feilu2016/p/7003826.html

總結

以上是生活随笔為你收集整理的浏览器的缓存控制的全部內容,希望文章能夠幫你解決所遇到的問題。

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