3- html meta 标签和浏览器缓存关系

html 中 meta 的介绍

基本介绍

  • meta 标签主要是用来描述一个 html 网页文档的属性的。 例如 作者、日期、时间、页面刷新。
  • 还可以用于 seo 的搜索优化。

基本属性

分为必选和可选项

  • 1.必选属性:

    • ==content== 属性。该属性是为了定义与http-equiv或者name属性相关的元信息,其中的内容是为了便于搜索机器人查找信息和分类使用的。
  • 2.可选属性:

    • ==name== 属性。该属性主要用于描述网页。name属性的值可以有:author、description、keywords、generator等等
    • ==http-equiv== 属性。该属性相当于http的头文件作用,可以向浏览器返回一些有用的信息,以帮助正确和精确的显示内容。http-equiv属性的值可以有content-type、expires、refresh等等。

name 属性 的一般应用

  • keyword、description、author、robot 基本应用
// 语言格式
<meta charset="utf-8">

//关键字 和 描述 html 主体内容
<meta name="keywords" content="关于meta标签,网页,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。

  • 设定为all:文件将被检索,且页面上的链接可以被查询;

  • 设定为none:文件将不被检索,且页面上的链接不可以被查询;

  • 设定为index:文件将被检索;

  • 设定为follow:页面上的链接可以被查询;

  • 设定为noindex:文件将不被检索,但页面上的链接可以被查询;

  • 设定为nofollow:文件将不被检索,页面上的链接可以被查询。

http-equiv 的一般应用

  • content-type(文档内容类型:用于设定文档的类型和字符集)
  • expires(期限:可以用于设定网页的到期期限)
  • pragma(cashe模式:即是否从缓存中访问网页内容)
  • refresh(刷新:等待一定时间自动刷新或跳转到其他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">

// 是否设置缓存
<meta http-equiv="pragma" content="no-cache">

// 等待一定时间自动跳转
<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值(网站开启对web app程序的支持)
<meta name="app-mobile-web-app-capable" content="yes"/>
  • name属性的apple-mobile-web-app-status-bar-style值(改变顶部状态条的颜色)
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>

浏览器缓存机制

浏览器是如何判断缓存是否过期?

  • 应该是根据Response Header里面的Cache-Control和Expires这两个属性,当两个都存在时,Cache-Control优先级较高。

浏览器缓存分为:强缓存和协商缓存。

  • 1、==强缓存==:浏览器加载资源时,第一步先判断它是否是强缓存,如果是,浏览器将直接从自己的缓存中读取,不会向服务器发送请求。
    上图,status200,Size是from memory cache就是走的强缓存。那么什么是强缓存呢?浏览器又是咋判断的呢?

    • ==Expires字段==:

      • 1、浏览器第一次向服务器请求,服务器返回资源并在response header加上Expires字段,是客户端缓存有效期,是绝对时间。
      • 2、浏览器接收资源,把资源和相应头缓存起来。
      • 3、待到再次请求这个资源时,先在缓存中找,找到了看Expires字段,判断是否过期。若没过期直接从缓存加载。若过期了,再向服务器请求。
    • ==Cache-Control字段==:

      • 1、浏览器第一次向服务器请求,服务器返回资源并在response header加上Cache-Control字段,也是缓存的有效期,但是是相对时间,比如:Cache-Control:max-age=56700000。
      • 2、浏览器接收资源,把资源和相应头缓存下来。
      • 3、待到浏览器再次请求这个资源时,先在缓存找,根据第一次的请求时间和Cache-Control相对时间算出过期时间。若没过期,直接从缓存加载。若过期了,再向服务器请求。

==Expires字段==但是绝对时间有时会有偏差,所以引出了==Cache-Control==。
==Cache-Control==弥补了==Expires==的不足,更安全有效。

服务端如何判断缓存已失效?

  • 服务端通过If-Modified-Since(Last-Modified)和If-None-Match(Etag)这两个属性的值来判断缓存是否失效的。

  • 2、==协商缓存==:当浏览器判断不是强缓存,就会发向服务器发请求,判断是否是协商缓存。如果是,服务器会返回304Not Modified,浏览器从缓存中加载。那什么又是协商缓存呢?

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

      • 1、浏览器第一次向服务器发请求,服务器返回资源并在response header加上Last-Modified字段,表示资源最后修改的时间。
      • 2、浏览器再次请求这个资源时,请求头会加上If-Modified-Since字段。若这两个字段一样,说明资源没有修改过,返回304Not Modified,浏览器从缓存中获取资源。若这两个字段不一样,说明资源修改过,服务器正常返回资源。
    • ==ETag、If-None-Match==:

      • 但有时候服务器上资源有变化,单最后修改时间没更新,则引出下面两个字段。
      • 1、浏览器第一次向服务器请求,服务器返回资源并在response header上加ETag字段。表示资源本身,资源有变化,则该字段有变化。
      • 2、浏览器再次向服务器请求这个资源时,请求头携带If-None-Match字段。若这两个字段相同,则代表资源没有变化,服务器返回304Not Modified,浏览器从缓存中加载。若两个字段不同,证明资源有变动,服务器正常返回资源。

引用 :

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容