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

前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存

這篇具有很好參考價值的文章主要介紹了前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

參考地址—如下:

掘金1:瀏覽器緩存
掘金2 :瀏覽器緩存

跟別人怎么講,從大的說:緩存的原理是什么? 再說什么是瀏覽器緩存?
	緩存的原理是什么:減少請求(瀏覽器向服務器發(fā)起的)

瀏覽器緩存 請求(靜態(tài)資源 | 動態(tài)資源)

一、緩存是什么?
1、如果沒有緩存的機制 每次都要重新請求靜態(tài)資源 1.從網絡上的下載時間,肯定大于從硬盤里讀的時間 2.浪費流量
2、
二、為什么?
文件地址一樣,就一定會緩存
例如: 
首次訪問	www.baidu.com?123.js

更換地址	www.baidu.com?234.js

切回地址	www.baidu.com?123.js

瀏覽器會自動緩存,

瀏覽器是如何判斷是否使用緩存的??第一次請求網頁

前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存,緩存,edge瀏覽器,服務器,前端,javascript

第二次請求相同網頁:

前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存,緩存,edge瀏覽器,服務器,前端,javascript

三、怎么做?

問題1、 怎么樣才能讓瀏覽器知道 我需要更新我的緩存了

關于時間戳計算問題參考地址:

假如我設定一個定時器,每到一定的時間去更新  「 cacheTime  」,就解決了

前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存,緩存,edge瀏覽器,服務器,前端,javascript

問題2,使用定時器,也會遇到問題,規(guī)定1小時發(fā)送一個請求,但是接口中的數據 5分鐘有改動(數據不及時),或者1小時02分鐘有改動(發(fā)現未變動,獲取的還是緩存中的數據),還是會存在問題,這就是

(強緩存) 的弊端, 我不知道什么時間去更新,去調用。

前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存,緩存,edge瀏覽器,服務器,前端,javascript

強緩存:瀏覽器不會像服務器發(fā)送任何請求,直接從本地緩存中讀取文件并返回Status Code: 200 OK

前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存,緩存,edge瀏覽器,服務器,前端,javascript
前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存,緩存,edge瀏覽器,服務器,前端,javascript

 200 form memory(內存) cache : 不訪問服務器,一般已經加載過該資源且緩存在了內存當中,直接從內存中讀取緩存。瀏覽器關閉后,數據將不存在(資源被釋放掉了),再次打開相同的頁面時,不會出現from memory cache。

200 from disk(硬盤) cache: 不訪問服務器,已經在之前的某個時間加載過該資源,直接從硬盤中讀取緩存,關閉瀏覽器后,數據依然存在,此資源不會隨著該頁面的關閉而釋放掉下次打開仍然會是from disk cache。

注意:優(yōu)先訪問memory cache,其次是disk cache,最后是請求網絡資源

協商緩存: 需要向服務器發(fā)送請求嗎?(肯定發(fā)送了)

***(優(yōu)先級低)一、Last-Modified: 瀏覽器訪問服務器,返回Last-Modified:時間(秒),下次請求通過參數(If-Modified-Since)攜帶過去。

瀏覽器向服務器發(fā)送資源最后的修改時間,單位是s,當1s內有資源修改,如果修改時間是100ms,那么就存在問題。

二、If-Modified-Since:(Last-Modified文件最后修改時間,通過這個參數攜帶)

當資源過期時(瀏覽器判斷Cache-Control標識的max-age過期),發(fā)現響應頭具有Last-Modified聲明,則再次向服務器請求時帶上頭if-modified-since,表示請求時間。服務器收到請求后發(fā)現有if-modified-since則與被請求資源的最后修改時間進行對比(Last-Modified),若最后修改時間較新(大),說明資源又被改過,則返回最新資源,HTTP 200 OK;若最后修改時間較舊(?。?,說明資源無新修改,響應HTTP 304 走緩存。

*****(優(yōu)先級高)三、Etag:瀏覽器訪問服務器,返回Etag:hash值,下次請求通過參數(If-None-Match)攜帶過去。

Etag是屬于HTTP 1.1屬性,它是由服務器(Apache或者其他工具)生成返回給前端,用來幫助服務器控制Web端的緩存驗證。

Apache中,ETag的值,默認是對文件的索引節(jié)(INode),大小(Size)和最后修改時間(MTime)進行Hash后得到的。

四、If-None-Match:

當資源過期時,瀏覽器發(fā)現響應頭里有Etag,則再次像服務器請求時帶上請求頭if-none-match(值是Etag的值)。服務器收到請求進行比對,決定返回200或304

結論:

  • Last-Modifed/If-Modified-Since的時間精度是秒,而Etag可以更精確。
  • Etag優(yōu)先級是高于Last-Modifed的,所以服務器會優(yōu)先驗證Etag。
  • Last-Modifed/If-Modified-Since是http1.0的頭字段。

問題一?既然有了Last-Modified,為什么還要誕生Etag呢??

《鳳凰架構》談緩存的時候有提及到:
“Etag 是 HTTP 中一致性最強的緩存機制,譬如,Last-Modified 標注的最后修改只能精確到秒級,如果某些文件在 1 秒鐘以內,被修改多次的話,它將不能準確標注文件的修改時間;又或者如果某些文件會被定期生成,可能內容并沒有任何變化,但 Last-Modified 卻改變了,導致文件無法有效使用緩存,這些情況 Last-Modified 都有可能產生資源一致性問題,只能使用 Etag 解決。

Etag 卻又是 HTTP 中性能最差的緩存機制,體現在每次請求時,服務端都必須對資源進行哈希計算(如果修改的文件特別大),這比起簡單獲取一下修改時間,開銷要大了很多。Etag 和 Last-Modified 是允許一起使用的,服務器會優(yōu)先驗證 Etag,在 Etag 一致的情況下,再去對比 Last-Modified,這是為了防止有一些 HTTP 服務器未將文件修改日期納入哈希范圍內。”文章來源地址http://www.zghlxwxcb.cn/news/detail-664475.html

到了這里,關于前端---需要了解瀏覽器相關知識--瀏覽器請求服務器資源---緩存的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

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

相關文章

  • Spring基礎(Web-MVC)——在idea中新建springWeb項目 & 瀏覽器請求 和 服務器響應 & SpringMvc文件相關

    Spring基礎(Web-MVC)——在idea中新建springWeb項目 & 瀏覽器請求 和 服務器響應 & SpringMvc文件相關

    mvc是啥,springMvc是啥,如何搭建springWeb項目, 在springMvc下的request和response怎么發(fā)請求,怎么進行響應? springMvc處理文件相關:上傳文件,uuid改名,靜態(tài)資源映射,yaml配置路徑,spring配置文件初步; 表現(視圖)層:WEB層,用來和客戶端進行數據交互的。 servlet-controller 業(yè)務層

    2024年02月03日
    瀏覽(60)
  • 瀏覽器不需要安裝插件,前端播放在線視頻方案,幾款播放器介紹,hls協議下的h.265視頻播放方案推薦

    瀏覽器不需要安裝插件,前端播放在線視頻方案,幾款播放器介紹,hls協議下的h.265視頻播放方案推薦

    一般我們播放本地視頻都是使用 video標簽,但是 video 元素只支持三種視頻格式:MP4、WebM、Ogg ,對于在線視頻直接使用video是沒法播放的,這里介紹幾款這兩天我在做播放在線監(jiān)控視頻功能時使用過的幾款播放器,初次接觸流媒體踩了一堆坑,到目前為止對這部分內容都還了

    2024年02月08日
    瀏覽(37)
  • JS-27 前端數據請求方式;HTTP協議的解析;JavaScript XHR、Fetch的數據請求與響應函數;前端文件上傳XHR、Fetch;安裝瀏覽器插件FeHelper

    JS-27 前端數據請求方式;HTTP協議的解析;JavaScript XHR、Fetch的數據請求與響應函數;前端文件上傳XHR、Fetch;安裝瀏覽器插件FeHelper

    早期的網頁都是通過后端渲染來完成的,即服務器端渲染(SSR,server side render): 客戶端發(fā)出請求 - 服務端接收請求并返回相應HTML文檔 - 頁面刷新,客戶端加載新的HTML文檔; 服務器端渲染的缺點: 當用戶點擊頁面中的某個按鈕向服務器發(fā)送請求時,頁面本質上只是一些數

    2024年02月16日
    瀏覽(42)
  • 使用Selenium需要瀏覽器驅動與瀏覽器版本統(tǒng)一

    使用Selenium需要瀏覽器驅動與瀏覽器版本統(tǒng)一

    安裝瀏覽器驅動 針對不同的瀏覽器,需要安裝不同的驅動。 這里以安裝 Chrome 驅動作為演示。 確定瀏覽器版本 進入設置界面,然后選擇 【關于 Chrome】 查看自己的版本信息。這里我的版本是114,下載對應版本的 Chrome 驅動即可。 下載驅動 打開Chrome驅動。單擊對應的版本。(

    2024年02月08日
    瀏覽(27)
  • 瀏覽器---瀏覽器/http相關面試題

    瀏覽器---瀏覽器/http相關面試題

    共同點:二者都是以key-value的鍵值對方式存儲在瀏覽器端,大小大概在5M。 區(qū)別: (1)數據有效期不同:sessionStorage僅在當前瀏覽器窗口關閉之前有效;localStorage始終有效,窗口或瀏覽器關閉也一直保存,因此用作持久數據; (2)作用域不同:sessionStorage數據只能在同一個

    2024年02月22日
    瀏覽(24)
  • 真的只是簡單了解下瀏覽器緩存

    真的只是簡單了解下瀏覽器緩存

    當我們打開一個頁面時,會向服務端發(fā)起很多次請求,如下圖打開百毒首頁,發(fā)起了HTML、各種圖片、JS、CSS等資源共72次請求。這里面很多資源并不會頻繁變化,每次打開頁面都重新請求下載,就很浪費了。 瀏覽器緩存也稱為HTTP緩存,HTTP緩存 簡單理解就是本地(瀏覽器)緩

    2023年04月25日
    瀏覽(18)
  • 瀏覽器請求加Headers

    瀏覽器請求加Headers

    Chrome 應用商店安裝 Modify Header Value 選項里添加 URL、Header Name、Header Value 添加 URL: http://127.0.0.1/ Header Name: Token Header Value: 123 訪問 http://127.0.0.1:5000/ HTTP Headers - HTTP | MDN

    2024年02月07日
    瀏覽(94)
  • 瀏覽器請求導入postman

    瀏覽器請求導入postman

    簡單三步 1. 復制請求 2.導入 3. send 1. 選擇 復制-?復制為cURL(bash) ?2. 打開postman 選擇import - raw text - continue? 然后點擊 ?import 點擊send ? ? ? ?

    2024年02月13日
    瀏覽(21)
  • 一文快速了解瀏覽器Sui Explorer

    一文快速了解瀏覽器Sui Explorer

    Sui作為一條基于第一原理重新設計和構建而成的L1公鏈,所有區(qū)塊和交易信息皆公開透明,每個人都能自行查看。通過Sui鏈上瀏覽器,用戶可以迅速了解鏈上的交易情況,比如當前的TPS和Gas價格,也可以使用Digest來查看特定交易的內容。您可以使用Sui Explorer實現以下目的: 查

    2024年02月06日
    瀏覽(27)
  • 使用Postman攔截瀏覽器請求

    使用Postman攔截瀏覽器請求

    項目上線之后,難免會有BUG。在出現問題的時候,我們可能需要獲取前端頁面發(fā)送請求的數據,然后在測試環(huán)境發(fā)送相同的數據將問題復現。手動構建數據是挺麻煩的一件事,所以我們可以借助Postman在瀏覽器上的插件幫助攔截請求,獲取發(fā)送的數據。 既然是基于Postman進行操

    2024年02月15日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包