3- html meta 標簽和瀏覽器緩存關(guān)系

html 中 meta 的介紹

基本介紹

  • meta 標簽主要是用來描述一個 html 網(wǎng)頁文檔的屬性的。 例如 作者、日期、時間、頁面刷新。
  • 還可以用于 seo 的搜索優(yōu)化。

基本屬性

分為必選和可選項

  • 1.必選屬性:

    • ==content== 屬性。該屬性是為了定義與http-equiv或者name屬性相關(guān)的元信息,其中的內(nèi)容是為了便于搜索機器人查找信息和分類使用的。
  • 2.可選屬性:

    • ==name== 屬性。該屬性主要用于描述網(wǎng)頁。name屬性的值可以有:author、description、keywords、generator等等
    • ==http-equiv== 屬性。該屬性相當于http的頭文件作用,可以向瀏覽器返回一些有用的信息,以幫助正確和精確的顯示內(nèi)容。http-equiv屬性的值可以有content-type、expires、refresh等等。

name 屬性 的一般應(yīng)用

  • keyword、description、author、robot 基本應(yīng)用
// 語言格式
<meta charset="utf-8">

//關(guān)鍵字 和 描述 html 主體內(nèi)容
<meta name="keywords" content="關(guān)于meta標簽,網(wǎng)頁,918之初">
<meta name="description" content="HTML中<meta>標簽如何正確使用">

// 作者信息
<meta name="author" content="somebody">
//便于 seo 搜索
<meta name="robot" content="none">

該屬性的值有all、none、index、noindex、follow和nofollow。默認為all。

  • 設(shè)定為all:文件將被檢索,且頁面上的鏈接可以被查詢;

  • 設(shè)定為none:文件將不被檢索,且頁面上的鏈接不可以被查詢;

  • 設(shè)定為index:文件將被檢索;

  • 設(shè)定為follow:頁面上的鏈接可以被查詢;

  • 設(shè)定為noindex:文件將不被檢索,但頁面上的鏈接可以被查詢;

  • 設(shè)定為nofollow:文件將不被檢索,頁面上的鏈接可以被查詢。

http-equiv 的一般應(yīng)用

  • content-type(文檔內(nèi)容類型:用于設(shè)定文檔的類型和字符集)
  • expires(期限:可以用于設(shè)定網(wǎng)頁的到期期限)
  • pragma(cashe模式:即是否從緩存中訪問網(wǎng)頁內(nèi)容)
  • refresh(刷新:等待一定時間自動刷新或跳轉(zhuǎn)到其他url)
// 文檔類型
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

// 必須是 GMT 格式
<meta http-equiv="expires" content="Fri,12 Jan 2001 15:15:15 GMT">

// 是否設(shè)置緩存
<meta http-equiv="pragma" content="no-cache">

// 等待一定時間自動跳轉(zhuǎn)
<meta http-equiv="refresh" content="1; url=https://www.baidu.com"/>

<meta>標簽中在移動端的使用

  • name屬性的viewport的值(移動端屏幕的縮放)
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
  • name屬性的format-detection值。

我們可以通過這個屬性禁止自動識別電話和郵箱。舉例如下:

<meta name="format-detection" content="telephone=no,email=no"/>
  • name屬性的apple-mobile-web-app-capable值(網(wǎng)站開啟對web app程序的支持)
<meta name="app-mobile-web-app-capable" content="yes"/>
  • name屬性的apple-mobile-web-app-status-bar-style值(改變頂部狀態(tài)條的顏色)
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>

瀏覽器緩存機制

瀏覽器是如何判斷緩存是否過期?

  • 應(yīng)該是根據(jù)Response Header里面的Cache-Control和Expires這兩個屬性,當兩個都存在時,Cache-Control優(yōu)先級較高。

瀏覽器緩存分為:強緩存和協(xié)商緩存。

  • 1、==強緩存==:瀏覽器加載資源時,第一步先判斷它是否是強緩存,如果是,瀏覽器將直接從自己的緩存中讀取,不會向服務(wù)器發(fā)送請求。
    上圖,status200,Size是from memory cache就是走的強緩存。那么什么是強緩存呢?瀏覽器又是咋判斷的呢?

    • ==Expires字段==:

      • 1、瀏覽器第一次向服務(wù)器請求,服務(wù)器返回資源并在response header加上Expires字段,是客戶端緩存有效期,是絕對時間。
      • 2、瀏覽器接收資源,把資源和相應(yīng)頭緩存起來。
      • 3、待到再次請求這個資源時,先在緩存中找,找到了看Expires字段,判斷是否過期。若沒過期直接從緩存加載。若過期了,再向服務(wù)器請求。
    • ==Cache-Control字段==:

      • 1、瀏覽器第一次向服務(wù)器請求,服務(wù)器返回資源并在response header加上Cache-Control字段,也是緩存的有效期,但是是相對時間,比如:Cache-Control:max-age=56700000。
      • 2、瀏覽器接收資源,把資源和相應(yīng)頭緩存下來。
      • 3、待到瀏覽器再次請求這個資源時,先在緩存找,根據(jù)第一次的請求時間和Cache-Control相對時間算出過期時間。若沒過期,直接從緩存加載。若過期了,再向服務(wù)器請求。

==Expires字段==但是絕對時間有時會有偏差,所以引出了==Cache-Control==。
==Cache-Control==彌補了==Expires==的不足,更安全有效。

服務(wù)端如何判斷緩存已失效?

  • 服務(wù)端通過If-Modified-Since(Last-Modified)和If-None-Match(Etag)這兩個屬性的值來判斷緩存是否失效的。

  • 2、==協(xié)商緩存==:當瀏覽器判斷不是強緩存,就會發(fā)向服務(wù)器發(fā)請求,判斷是否是協(xié)商緩存。如果是,服務(wù)器會返回304Not Modified,瀏覽器從緩存中加載。那什么又是協(xié)商緩存呢?

    • ==Last-Modified==和==If-Modified-Since==字段:

      • 1、瀏覽器第一次向服務(wù)器發(fā)請求,服務(wù)器返回資源并在response header加上Last-Modified字段,表示資源最后修改的時間。
      • 2、瀏覽器再次請求這個資源時,請求頭會加上If-Modified-Since字段。若這兩個字段一樣,說明資源沒有修改過,返回304Not Modified,瀏覽器從緩存中獲取資源。若這兩個字段不一樣,說明資源修改過,服務(wù)器正常返回資源。
    • ==ETag、If-None-Match==:

      • 但有時候服務(wù)器上資源有變化,單最后修改時間沒更新,則引出下面兩個字段。
      • 1、瀏覽器第一次向服務(wù)器請求,服務(wù)器返回資源并在response header上加ETag字段。表示資源本身,資源有變化,則該字段有變化。
      • 2、瀏覽器再次向服務(wù)器請求這個資源時,請求頭攜帶If-None-Match字段。若這兩個字段相同,則代表資源沒有變化,服務(wù)器返回304Not Modified,瀏覽器從緩存中加載。若兩個字段不同,證明資源有變動,服務(wù)器正常返回資源。

引用 :

1 https://www.cnblogs.com/zhuzhenwei918/p/6028414.html

2 https://segmentfault.com/a/1190000012613216

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容