国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

HTTP緩存如何提高Web應用程序的性能?

開發 前端
HTTP緩存是用于減少HTTP請求次數和提高Web應用程序性能的重要技術。Web瀏覽器和Web服務器可以通過HTTP頭控制HTTP緩存。

緩存是一種可以幫助網絡連接更快的技術,因為需要傳輸的東西越少越好。

許多資源可能非常大,檢索的時間和實際成本(例如,在移動設備上)都非常昂貴。

HTTP緩存是用于減少HTTP請求次數和提高Web應用程序性能的重要技術。Web瀏覽器和Web服務器可以通過HTTP頭控制HTTP緩存。

以下是HTTP緩存的一些重要概念:

無緩存

首先,Cache-Control header 可以通過使用 no-cache 值,告訴瀏覽器在不首先檢查 ETag 值(稍后將對此進行詳細介紹)的情況下永遠不要使用資源的緩存版本:

Cache-Control: no-cache

更嚴格的 no-store 選項告訴瀏覽器(以及所有中間網絡設備)不將資源存儲在其緩存中:

Cache-Control: no-store

如果 Cache-Control 有 max-age 值,則該值用于確定此資源作為緩存有效的秒數:

Cache-Control: max-age=7200

Expiresheader

當發送 HTTP 請求時,瀏覽器根據所需的 URL 檢查緩存中是否有該頁面的副本。

如果有,它會檢查頁面的新鮮度。

如果 HTTP 響應 Expires header 值小于當前日期時間,則頁面是最新的。

Expires header 采用以下形式:

Expires: Tue, 04 Oct 2022 19:00:00 GMT

強緩存

HTTP/1.0 使用的是 Expires header,HTTP/1.1 使用的是 Cache-Control header。

  • Expires 即過期時間,時間是相對于服務器的時間而言的,存在于服務端返回的響應頭中,在這個過期時間之前可以直接從緩存中獲取數據,無需再次請求。但這種方式存在一個問題:無需再次請求服務器的時間和瀏覽器的時間可能并不一致
  • 在 HTTP/1.1 中,使用的是 Cache-Control header,這個 header 采用的時間是過期時長,對應的值是 max-age=*

當 Expires 和 Cache-Control 同時存在時,優先考慮 Cache-Control header。當緩存資源失效了,也就是沒有命中強緩存,接下來就進入協商緩存。

協商緩存

如果緩存過期了,我們就可以使用協商緩存來解決問題。協商緩存需要請求,如果緩存有效會返回 304 Not Modified

  • 使用 If-Modified-Since 和 Last-Modified
  • 使用 If-None-Match 和 ETag

所有這些都基于使用 If-* 請求頭,并且 ETag 優先級? Last-Modified 高。

If-Modified-Since和 Last-Modified

它添加一個 If-Modified-Since header,基于從當前緩存頁面獲得的 Last-Modified header 值。

Last-Modified 表示本地文件最后修改時間,If-Modified-Since 會將當前緩存頁面獲得的 Last-Modified 的 header 值發送給服務器,詢問服務器在該時間后資源是否有更新,有更新的話就會將新的資源發送回來。

否則,服務器將返回一個 304 Not Modified 響應。

這包括了發送的請求和頁面請求。

但是如果在本地打開緩存文件,就會造成 Last-Modified 被修改,所以在 HTTP/1.1 出現了 ETag

If-None-Match和 ETag

web 服務器(取決于設置、頁面的服務方式等)可以發送 ETag header。

這是資源的標識符,類似于文件指紋。每次資源改變時,ETag 也應該改變。

它就像一個校驗和(checksum)。

瀏覽器發送一個 If-None-Match header,其中包含一個(或多個)ETag 值。發送到服務器后,詢問該資源 ETag 是否變動,有變動的話就將新的資源發送回來。

否則返回 304 Not Modified 響應。

Last-Modified 與 ETag 的對比

性能上,Last-Modified 優于 ETagLast-Modified 記錄的是時間點,而 ETag 需要根據文件的 MD5 算法生成對應的 hash 值。

精度上,ETag 優于 Last-ModifiedETag 按照內容給資源帶上標識,能準確感知資源變化,Last-Modified 在某些場景并不能準確感知變化。

如果兩者都存在,優先判斷 If-None-Match 進行 ETag 協商緩存。

緩存位置

當命中強緩存和協商緩存返回 304 時,瀏覽器會從緩存中獲取資源。

瀏覽器中的緩存位置一共有四種,按優先級從高到低排列分別是:

  • Service Worker — 其借鑒了 Web Worker 思路,主要功能有:離線緩存、消息推送和網絡代理,其中離線緩存就是 Service Worker Cache
  • Memory Cache — 內存緩存,從效率上講它是最快的,從存活時間來講又是最短的,當渲染進程結束后,內存緩存也就不存在了。
  • Disk Cache — 存儲在磁盤中的緩存,從存取效率上講是比內存緩存慢的,優勢在于存儲容量和存儲時長。
  • Push Cache — 推送緩存,它瀏覽器緩存的最后一道防線,它是 HTTP/2 的內容。

瀏覽器在選擇 Disk Cache 與 Memory Cache 的存儲上:內容使用率高的,文件優先進入磁盤。比較大的 JS、CSS 文件會直接放入磁盤,反之放入內存。

強緩存與協商緩存區別

  • 強緩存 — 瀏覽器不會與服務端協商,而是直接獲取瀏覽器緩存。
  • 協商緩存 — 瀏覽器會先向服務器確認資源的有效性后,才決定是從緩存中獲取資源還是重新獲取資源。
  • 強緩存在瀏覽器進行判斷,而協商緩存在服務端進行判斷。
責任編輯:姜華 來源: 今日頭條
相關推薦

2022-01-22 00:22:27

網站性能Web優化

2009-01-03 14:25:10

ibmdwWeb

2022-02-24 23:56:45

Web應用程序工具

2017-06-13 17:23:53

存儲緩存數據

2021-11-05 11:03:33

云計算開發技術

2009-12-23 10:29:01

WPF應用程序

2022-07-04 17:32:12

DevOpsAIOps

2012-06-11 09:37:41

2011-09-20 10:41:45

Web

2019-10-17 10:10:23

優化Web前端

2014-02-19 15:38:42

2013-11-19 15:35:01

2021-08-18 09:37:51

數據庫移動應用程序

2009-04-01 14:33:33

2009-07-09 16:47:26

Servlet的Web

2024-01-05 07:38:55

2019-03-14 15:38:19

ReactJavascript前端

2011-07-07 09:03:12

ASP.NET

2024-02-29 08:32:03

HTTP協議Web服務消息隊列

2010-05-20 09:48:36

點贊
收藏

51CTO技術棧公眾號

在线人体午夜视频| 97电影在线看视频| 奇米影视在线99精品| 午夜精品久久久久久久久久久久| 国产免费av在线| 欧美日韩久久久久| 三上悠亚在线观看二区| 国产精品麻豆网站| 色婷婷综合网站| 亚洲国产精品av| 国产91高潮流白浆在线麻豆| 91午夜理伦私人影院| 久久这里只有精品一区二区| 欧美猛交免费看| 国产精品一区二区三区www| 亚洲天堂av图片| 电影一区二区三区| 国产亚洲精品va在线观看| 欧洲在线视频| 亚洲高清一区二| av在线不卡免费| 亚洲国产日韩一区| 绿色成人影院| 国产**成人网毛片九色| 日韩中文不卡| 日韩av首页| 亚洲视频视频在线| 成人软件在线观看| 日韩中文在线中文网三级| 欧美一级二级视频| 欧美成人免费全部| 成人台湾亚洲精品一区二区| 欧美xxxx做受欧美| 国产欧美三级电影| 国产精品入口尤物| 亚洲第一黄网| 一区二区三区四区| 成人免费视频app| 男女av免费观看| 亚洲同性gay激情无套| 一二三区在线视频| 56国语精品自产拍在线观看| 国内高清免费在线视频| 亚洲三级 欧美三级| 国产精品免费精品自在线观看| 久久久免费精品| 99精品视频在线观看播放| 精品蜜桃传媒| 粉嫩aⅴ一区二区三区四区 | 欧美亚洲动漫精品| 波多野结衣中文在线| 中文字幕9999| 欧洲杯足球赛直播| 另类欧美小说| 视频国产精品| 国产女人18毛片水18精品| 91av亚洲| 91精品国产91久久久久久| av中文一区| 国产在线资源一区| 国产精品白丝jk白祙喷水网站| 成人动漫h在线观看| 精品伊人久久久久7777人| 国语对白做受xxxxx在线中国| 亚洲国产中文字幕| eeuss鲁一区二区三区| 欧美理论片在线观看| 欧美午夜不卡| 岳毛多又紧做起爽| 欧美性大战久久久久久久蜜臀| 日韩在线免费| 成人网欧美在线视频| 国产麻豆精品一区二区| 国产精品一区二区免费看| 日本免费新一区视频 | 免费一级欧美片在线观看| 国产福利精品在线| 日本少妇一区二区| 小泽玛利亚视频在线观看| 欧美日韩国产成人在线免费| 国产欧美日韩电影| 欧美 日韩 国产在线| 国产精品美女久久久久av爽李琼 | 亚洲精品欧美激情| 日本动漫理论片在线观看网站| 久久精品视频在线观看| 99热国产在线中文| 国语对白做受69| 日韩国产一区二| 成人欧美一区二区三区黑人免费| 国产 日韩 欧美大片| 91亚洲精选| 久久免费精品日本久久中文字幕| 天堂久久久久va久久久久| av最新网址| 中文字幕日韩在线视频| 国产视频一区三区| h短视频大全在线观看| 久久精品小视频| 久久精品国产精品青草| 黄色av网站在线免费观看| 国内精品400部情侣激情| 狠狠v欧美v日韩v亚洲ⅴ| 国产视频第一页在线观看| 97在线视频观看| 国产成人精品三级麻豆| 亚洲综合影视| 国产精品推荐精品| 亚洲一区在线看| jizz性欧美23| 青春草国产视频| 日韩av最新在线| 亚洲欧美日韩国产| 欧美日韩影视| 日韩av免费网站| 国产亚洲自拍一区| 国精产品一区二区三区有限公司 | 中文字幕乱码免费| 91精品国产综合久久久久久久久久 | 国产精品手机在线| 天天综合网 天天综合色| 最新av中文字幕| 欧美风情在线观看| 4438全国亚洲精品观看视频| 99亚洲精品视频| 欧美丰满美乳xxx高潮www| 久久久久午夜电影| 佐山爱痴汉视频一区二区三区| 2019中文字幕在线观看| 国产清纯白嫩初高生在线观看91 | 九九色在线视频| 欧美日韩精品免费在线观看视频| 91久久人澡人人添人人爽欧美 | 肉丝袜脚交视频一区二区| 国产日本在线| 国产不卡一区二区三区在线观看| 亚洲美女在线国产| 免费成人av| 免费高清特黄a大片| 国产精品99久久久久久白浆小说| 亚洲精品视频观看| 欧美色蜜桃97| 青青草免费观看免费视频在线| 亚洲bt天天射| 欧美日韩国产欧美日美国产精品| 欧美一区二区三区久久精品| 狠狠狠综合7777久夜色撩人| 国产乱子伦精品| 欧美一级免费大片| 精品综合久久久久久8888| 国产精品亚洲一区二区三区在线观看| 欧美视频在线第一页| xxxx欧美18另类的高清| 久久久久青草大香线综合精品| 日韩一区二区三区色| 99爱视频在线观看| 91香蕉嫩草影院入口| 欧美亚洲综合久久| 葵司免费一区二区三区四区五区| 高清不卡亚洲| 中文字幕 91| 国产日韩在线免费| 制服.丝袜.亚洲.另类.中文| 国产在线一区二区| 一区二区三区免费在线看| 色老板亚洲精品一区| 国产精品久久亚洲| 日韩精品999| 日本一区二区免费在线观看视频 | 免费高清在线| 精品不卡一区二区三区| 亚洲男人的天堂在线播放| 99久久er热在这里只有精品66| 美女主播精品视频一二三四| 一起操在线观看| 亚洲精蜜桃久在线| 久久久久久久久久av| 91久久香蕉国产日韩欧美9色| 极品少妇一区二区| 亚洲免费成人av在线| 黄网址在线观看| 中文字幕第21页| 国产日韩欧美一区二区| www.99久久热国产日韩欧美.com| 亚洲福利一区二区| 久草中文综合在线| 香蕉人人精品| av片在线观看永久免费| 黑鬼大战白妞高潮喷白浆| 亚洲在线观看视频| 中文字幕欧美日韩在线| 亚洲成av人影院| 成人美女在线视频| 国产一区激情| 久久亚洲精精品中文字幕| 午夜精品亚洲一区二区三区嫩草| 久久九九国产精品怡红院| 欧美性videosxxxxx| 国产欧美日韩在线观看| 日韩有码一区二区三区|