国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HTTP系列之HTTP緩存 —— 強緩存和協(xié)商緩存

這篇具有很好參考價值的文章主要介紹了HTTP系列之HTTP緩存 —— 強緩存和協(xié)商緩存。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

HTTP緩存

HTTP緩存時利用HTTP響應頭將所請求的資源在瀏覽器進行緩存,緩存方式分兩種:強緩存和協(xié)商緩存。
瀏覽器緩存是指將之前請求過的資源在瀏覽器進行緩存,以便在下一次訪問時重復使用,從而節(jié)省帶寬、提升訪問速度、降低服務器壓力。

瀏覽器在第一次請求發(fā)生后,再次請求時:

  1. 瀏覽器會先獲取該資源緩存的header信息,根據(jù)其中的expires和cahe-control判斷是否命中強緩存,若命中則直接從緩存中獲取資源,包括緩存的header信息,本次請求不會與服務器進行通信;

  2. 如果沒有命中強緩存,瀏覽器會發(fā)送請求到服務器,該請求會攜帶第一次請求返回的有關緩存的header字段信息(Last-Modified / IF-Modified-Since、Etag / IF-None-Match),由服務器根據(jù)請求中的相關header信息來對比結(jié)果是否命中協(xié)商緩存,若命中,則服務器返回新的響應header信息更新緩存中的對應header信息,但是并不返回資源內(nèi)容,它會告知瀏覽器可以直接從緩存獲取;否則返回最新的資源內(nèi)容。

強緩存

強緩存指的是在緩存時間內(nèi)不會向服務器發(fā)起請求,只有過期之后才會向服務器發(fā)起請求。
HTTP1.0規(guī)范:
Expires字段:表示資源的過期時間。在瀏覽器第一次請求資源時,服務器端的響應頭會附上Expires這個響應字段,當瀏覽器在下一次請求這個資源時會根據(jù)上次的Expires字段是否使用緩存資源(當請求時間小于服務端返回的到期時間,直接使用緩存數(shù)據(jù))
比如,Expires:Mon,18 Oct 2066 23:59:59 GMT。這個時間代表著這個資源的失效時間,在此時間之前,即命中緩存。這種方式有一個明顯的缺點,由于失效時間是一個絕對時間,所以,當服務器與客戶端時間偏差較大時,就會導致緩存混亂。

HTTP1.1規(guī)范:
Expires有個缺點,當客戶端本地時間被修改時瀏覽器會直接向服務器請求新的資源,為了解決這個問題,在http1.1規(guī)范中,提出了cache-control字段,且這個字段優(yōu)先級高于上面提到的Expires,值是相對時間。
主要是利用該字段的max-age值來進行判斷,它是一個相對時間,例如,Cache-Control:max-age=3600,代表著資源的有效期是3600秒。
Cache-Control與Expires可以在服務端配置同時啟用,同時啟用的時候Cache-Control優(yōu)先級高。
cache-control除了max-age外,還有下面幾個比較常用的設置值:

  1. no-cache:需要使用協(xié)商緩存來驗證緩存數(shù)據(jù):數(shù)據(jù)儲存在本地緩存區(qū)中,只是在與原始服務器進行新鮮度再驗證之前,緩存不能將其提供給客戶端使用。需要使用緩存協(xié)商,先與服務器確認返回的響應是否被更改,如果之前的響應中存在ETag,那么請求的時候會與服務端驗證。
  2. no-store:直接禁止瀏覽器緩存數(shù)據(jù),每次都會下載完整的資源。
  3. public:可以被所有的用戶緩存,包括終端用戶和CDN等中間代理服務器。
  4. private:只能被終端用戶的瀏覽器緩存,不允許CDN等中繼緩存服務器對其緩存。
協(xié)商緩存

協(xié)商緩存主要依賴的響應頭包括Last-Modified和ETag,需要和服務器交互,請求資源命中協(xié)商緩存后,返回的狀態(tài)碼為 304,所以304狀態(tài)碼不應該認為是一種錯誤,而是對客戶端有緩存情況下服務端的一種響應。

Last-Modified:記錄資源最后修改的時間。
ETag:基于資源的內(nèi)容編碼生成一串唯一的Hash值, 只要內(nèi)容不同, 就會生成不同的ETag。

Last-Modified有以下兩個缺點:
1 只要編輯了,不管內(nèi)容是否真的有改變,都會以這最后修改的時間作為判斷依據(jù),當成新資源返回,從而導致了沒必要的請求相應,而這正是緩存本來的作用即避免沒必要的請求。
2 時間的精確度只能到秒,如果在一秒內(nèi)的修改是檢測不到更新的,仍會告知瀏覽器使用舊的緩存。

內(nèi)容發(fā)生變化都會生成新的,當生成etag的資源過大時,更新比較頻繁會造成開銷,所以二者要根據(jù)資源的特性合理選擇那種模式。

狀態(tài)碼區(qū)別

200 請求成功,服務器返回全新數(shù)據(jù)。
200 from memory cache / from disk cache 本地強緩存還在有效期,直接使用本地緩存
from memory cache 是頁面刷新的時候內(nèi)存取的。from disk cache 頁面標簽關閉后從磁盤取的
304 請求成功,走了協(xié)商緩存,服務器判定(Etag和Last-modified)沒有過期,告知瀏覽器使用緩存

緩存優(yōu)先級

expires和cache-control如果同時存在時,cache-control會覆蓋expires,expires無效,無論是否過期,即 Cache-control > expires
強緩存和協(xié)商緩存如果同時存在時,會去先對比強緩存是否還再有效期,如果強緩存生效則對比協(xié)商緩存,即強緩存 > 協(xié)商緩存
協(xié)商緩存Etag和last-modified同時存在時,會先比較Etag,last-modified無效,即Etag > last-modified

http強緩存和協(xié)商緩存,HTTP,http,緩存,網(wǎng)絡協(xié)議

如何設置強緩存和協(xié)商緩存

1、后端服務器設置

如nodejs:
res.setHeader('max-age': '3600 public')
res.setHeader(etag: '5c20abbd-e2e8')
res.setHeader('last-modified': Mon, 24 Dec 2018 09:49:49 GMT)

2、nginx配置
http強緩存和協(xié)商緩存,HTTP,http,緩存,網(wǎng)絡協(xié)議

使用場景

1.頻繁變動的資源 協(xié)商緩存
Cache-Control: no-cache
對于頻繁變動的資源,讓他走協(xié)商緩存,no-cache是不緩存過期的資源,全都走協(xié)商緩存,雖然不能減少請求的發(fā)送次數(shù),但是優(yōu)點就是減少響應數(shù)據(jù)的返回大小

2.不常變化的資源 強緩存
Cache-Control: max-age=31536000
對于很少變化的資源直接設置它強緩存的時間長遠一點,能夠減少請求的發(fā)送次數(shù),比如說像一些庫類,jquery-js的庫等,還有一些logo圖片等

參考:
https://blog.csdn.net/sunyctf/article/details/129865320
https://www.51cto.com/article/676318.html
https://blog.csdn.net/weixin_59613114/article/details/129717896
https://www.jianshu.com/p/9c95db596df5/
https://blog.csdn.net/JarryNeverGiveup/article/details/131060939
https://blog.csdn.net/m0_59070120/article/details/126976646文章來源地址http://www.zghlxwxcb.cn/news/detail-861898.html

到了這里,關于HTTP系列之HTTP緩存 —— 強緩存和協(xié)商緩存的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • http強緩存和協(xié)商緩存的介紹和應用案例,簡介明了

    http強緩存和協(xié)商緩存的介紹和應用案例,簡介明了

    強緩存:強緩存使用Expires(老版本)和cache-control(新版本)來控制 協(xié)商緩存:協(xié)商緩存使用if-Modified-Since 與 Last-Modified配對、If-None-Match與Etag配對來控制 優(yōu)先級 強緩存:cache-control - expires 協(xié)商緩存:Etag Last-Modified 參數(shù)介紹 Expires:服務器設置資源過期時間,在http/1.1中無效

    2024年02月05日
    瀏覽(27)
  • [Java網(wǎng)絡安全系列面試題] HTTP和HTTPS協(xié)議區(qū)別和聯(lián)系都有哪些?

    [Java網(wǎng)絡安全系列面試題] HTTP和HTTPS協(xié)議區(qū)別和聯(lián)系都有哪些?

    2.1 HTTP特點 1.支持客戶/服務器模式。( C/S 模式) 2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有 GET 、 HEAD 、 POST 。每種方法規(guī)定了客戶與服務器聯(lián)系的類型不同。由于 HTTP 協(xié)議簡單,使得 HTTP 服務器的程序規(guī)模小,因而通信速度很快。

    2024年04月23日
    瀏覽(31)
  • 【http】緩存協(xié)議

    【http】緩存協(xié)議

    在當今互聯(lián)網(wǎng)時代,計算機網(wǎng)絡已經(jīng)成為了人們生活和工作中不可或缺的一部分。而要實現(xiàn)計算機之間的通信和數(shù)據(jù)傳輸,就需要依靠各種網(wǎng)絡協(xié)議來進行規(guī)范和約束。無論是瀏覽網(wǎng)頁、發(fā)送電子郵件還是進行在線交流,都離不開各種各樣的網(wǎng)絡協(xié)議。在本專欄中,我們將深

    2024年02月03日
    瀏覽(18)
  • 第2關:HTTP 協(xié)議緩存的響應分析

    第2關:HTTP 協(xié)議緩存的響應分析

    任務描述 本關任務:分析 HTTP 請求與響應報文中與緩存有關的字段。 相關知識 為了完成本關任務,你需要掌握: WEB 緩存訪問過程及機制; HTTP 報文中與緩存有關的字段; 如何捕獲緩存請求與報文。 瀏覽器緩存訪問過程及機制 WEB 緩存一般分為瀏覽器緩存、代理服務器緩存

    2024年02月04日
    瀏覽(38)
  • 第138篇:了解HTTP協(xié)議(TCP/IP協(xié)議,DNS域名解析,瀏覽器緩存)

    第138篇:了解HTTP協(xié)議(TCP/IP協(xié)議,DNS域名解析,瀏覽器緩存)

    好家伙,發(fā)現(xiàn)自己的網(wǎng)絡知識十分匱乏,趕緊補一下 ? 這里先舉個我生活中的例子 欸,作業(yè)不會寫了,上網(wǎng)搜一下 用edge瀏覽器上bing必應搜一下(百度廣告太多了,真不想用百度舉例子) ? 假設這是我們第一次訪問bing的首頁 當我向瀏覽器中輸入https://cn.bing.com/并按下回車

    2023年04月24日
    瀏覽(32)
  • 計算機網(wǎng)絡—HTTP基本概念、HTTPS、HTTP狀態(tài)碼、HTTP緩存、HTTP請求

    計算機網(wǎng)絡—HTTP基本概念、HTTPS、HTTP狀態(tài)碼、HTTP緩存、HTTP請求

    參考小林coding HTTP是超文本傳輸協(xié)議。所謂的超文本,就是超越了普通文本的文本,最關鍵的是有超鏈接,能從一個超文本跳轉(zhuǎn)到另一個超文本。 HTML是最常見的超文本,本身是純文字文件,但是內(nèi)部使用很多標簽定義圖片、視頻等鏈接,再經(jīng)過瀏覽器的解釋,呈現(xiàn)出來的就是

    2024年02月07日
    瀏覽(40)
  • 【計算機網(wǎng)絡】強緩存和協(xié)商緩存

    強緩存和協(xié)商緩存是瀏覽器緩存機制的兩種不同策略,用于優(yōu)化網(wǎng)頁加載速度和減少網(wǎng)絡請求。 強緩存(HTTP Cache-Control 和 Expires) : 強緩存是通過在HTTP響應頭中設置相關字段來實現(xiàn)的,它告訴瀏覽器在一段時間內(nèi)直接使用緩存的資源,而不必再向服務器發(fā)起請求。兩個主要

    2024年02月10日
    瀏覽(20)
  • 網(wǎng)絡協(xié)議HTTP/1、HTTP/2 及 HTTP/3詳解

    網(wǎng)絡協(xié)議HTTP/1、HTTP/2 及 HTTP/3詳解

    目錄 概述 ?一、發(fā)展史 HTTP/1.1 ?Keep-alive? 動靜分離? HTTP/2 二進制傳輸? ?多路復用 Header 壓縮 服務端 Push ?HTTP/3 QUIC ?多路復用 0-RTT 糾錯機制 三、小結(jié) HTTP(Hyper Text Transformer Protocol,超文本傳輸協(xié)議)是一種通信協(xié)議,它允許將超文本標記語言(HTML)文檔從Web服務器傳送到

    2024年02月02日
    瀏覽(32)
  • HTTP協(xié)議(JavaEE初階系列15)

    HTTP協(xié)議(JavaEE初階系列15)

    目錄 前言: 1.HTTP協(xié)議 1.1HTTP協(xié)議是什么 1.2HTTP協(xié)議的報文格式 1.2.1抓包工具的使用 1.2.2HTTP請求 1.2.3HTTP響應 2.HTTP請求 2.1首行的組成 2.2.1URL的組成 2.2認識“方法”(method) 2.2.1GET方法 2.2.2POST方法 2.2.3GET和POST請求的區(qū)別 2.3認識請求“報頭”(header) 2.4認識請求正文(body) 3

    2024年02月11日
    瀏覽(50)
  • 【網(wǎng)絡協(xié)議】聊聊http協(xié)議

    【網(wǎng)絡協(xié)議】聊聊http協(xié)議

    當我們輸入www.baidu.com的時候,其實是先將baidu.com的域名進行DNS解析,轉(zhuǎn)換成對應的ip地址,然后開始進行基于TCP構建三次握手的連接,目前使用的是1.1 默認是開啟了keep-Alive??梢栽诙啻握埱笾羞M行連接復用。 連接建立之后,就要發(fā)送HTTP的請求了, 整體其實就是三部分,請

    2024年02月06日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包