摘要:緩存的作用減少延遲頁面打開的速度。降低服務器負載先取緩存,無緩存在請求服務器,有效降低服務器的負擔。下圖是自己畫的,有點丑,請原諒待會講解瀏覽器與服務器進行通訊包含兩部分請求頭包含各種緩存信息。至此結束,請多多指正
緩存的作用:
1.減少延遲(頁面打開的速度)。
2.降低服務器負載(先取緩存,無緩存在請求服務器,有效降低服務器的負擔)。
3.保證穩定性(有個笑話是手機搶購時為了保證服務器的穩定性,在前端寫個隨機數限制百分之二十的人發送數據到后臺,這也側面說明了緩存對于穩定性的作用)。
下圖是自己畫的,有點丑,請原諒!待會講解!
瀏覽器與服務器進行通訊包含兩部分:
1.請求頭header(包含各種緩存信息)。
2.請求體bdoy(數據發送的主要內容)
頁面緩存是由header決定的,包含四個參數:
一、Expires:
http1.0推出的,指服務器返回的文件有效期,但其實這是有缺陷的,如果把本地的時間改為2118年,那Expires的時間怎么都會過期。
二、Last-Modified:
http1.0推出的,指服務器文件的最后修改時間,瀏覽器會帶上If-Modified-Since向服務器發送請求,與服務器文件修改時間Last-Modified做對比,如果時間不同,則獲取數據返回200,否則返回304后調用瀏覽器本地硬盤的緩存。
這種方式也有問題,如果服務端文件頻繁修改保存,那么Last-Modified就會頻繁更改,每次都從服務端獲取,這也就有了http1.1的修改。
從網上拿了個angular.js地址試了一下,第一次返回200,第二次刷新頁面返回304。
時間:本地緩存獲取>服務器獲取
三、Cache-Control:
http1.1推出,指文件緩存的有效期。
1.max-age:單位是s,設置文件最大緩存時間,用得最多。
2.public:緩存可以被多用戶共享,例如360瀏覽器可以登錄不同賬號,電腦系統可以切換不同賬號。
3.private:僅單用戶私有,不被多用戶共享。
4.no-cache:不會被緩存。
5.no-store:不允許被存儲。
四、ETag
http1.1推出,該版本號是由服務端隨機生成的,瀏覽器會帶上If-None-Match向服務器發送請求,與服務器文件修改版本ETag做對比,如果版本號不同,則獲取數據返回200,否則返回304后調用瀏覽器本地硬盤的緩存,這種方式比Last-Modified靠譜。
思考?
Cache-Control+Last-Modified+ETag 的優先級會如何?
還記得剛開始的圖嗎?
因為http1.1>http1.0,
所以Cache-Control>Expires,ETag>Last-Modified。
依照就近原則,先找本地緩存,沒有再向服務器發請求,
所以Expires>Last-Modified,Cache-Control>ETag,
如果瀏覽器只支持http1.0,那么瀏覽器只會攜帶Last-Modified發送給后臺,
如果服務器只支持http1.0,那么服務器會以Last-Modified為標準。
如果瀏覽器支持http1.1,那么瀏覽器會攜帶Cache-Control+Last-Modified+ETag發送給后臺,
如果服務器支持http1.1,那么服務器會以Cache-Control+ETag為標準。
至此結束,請多多指正!!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/93521.html
摘要:緩存的作用減少延遲頁面打開的速度。降低服務器負載先取緩存,無緩存在請求服務器,有效降低服務器的負擔。下圖是自己畫的,有點丑,請原諒待會講解瀏覽器與服務器進行通訊包含兩部分請求頭包含各種緩存信息。至此結束,請多多指正 showImg(https://segmentfault.com/img/bV6iiG?w=480&h=260); 緩存的作用:1.減少延遲(頁面打開的速度)。2.降低服務...
摘要:對于瀏覽器緩存,相信很多開發者對它真的是又愛又恨。那么瀏覽器緩存究竟是個什么樣的神奇玩意呢什么是瀏覽器緩存簡單來說,瀏覽器緩存就是把一個已經請求過的資源如頁面,圖片,,數據等拷貝一份副本儲存在瀏覽器中。 對于瀏覽器緩存,相信很多開發者對它真的是又愛又恨。一方面極大地提升了用戶體驗,而另一方面有時會因為讀取了緩存而展示了錯誤的東西,而在開發過程中千方百計地想把緩存禁掉。那么瀏覽器緩存究竟...
摘要:對于瀏覽器緩存,相信很多開發者對它真的是又愛又恨。那么瀏覽器緩存究竟是個什么樣的神奇玩意呢什么是瀏覽器緩存簡單來說,瀏覽器緩存就是把一個已經請求過的資源如頁面,圖片,,數據等拷貝一份副本儲存在瀏覽器中。 對于瀏覽器緩存,相信很多開發者對它真的是又愛又恨。一方面極大地提升了用戶體驗,而另一方面有時會因為讀取了緩存而展示了錯誤的東西,而在開發過程中千方百計地想把緩存禁掉。那么瀏覽器緩存究竟...
摘要:上篇文章掌握緩存從請求到響應過程的一切上我們討論了關于利用頭來解決緩存問題,這篇文章我們將介紹緩存和之間的關系。文件將會被緩存起來,這時如果你想讓你的新文件起作用,那么用最新的版本號命名它就可以。緩存不同供應商清除緩存的方式不一樣。 作者:Ulrich Kautz 編譯:胡子大哈 翻譯原文:http://huziketang.com/blog/posts/detail?postId=...
閱讀 3603·2021-11-24 10:25
閱讀 2508·2021-11-24 09:38
閱讀 1217·2021-09-08 10:41
閱讀 2903·2021-09-01 10:42
閱讀 2569·2021-07-25 21:37
閱讀 1981·2019-08-30 15:56
閱讀 914·2019-08-30 15:55
閱讀 2750·2019-08-30 15:54