HTML中meta标签中属性详解并设置页面缓存策略

简介: HTML中meta标签中属性详解并设置页面缓存策略

【1】简介


<meta> 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。


<meta> 标签位于文档的头部,不包含任何内容。<meta> 标签的属性定义了与文档相关联的名称/值对。


该标签主要有两个属性:http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。

① 控制页面不被缓存

<!-- HTTP 1.1 -->
<meta http-equiv="pragma" content="no-cache">
<!-- HTTP 1.0 -->
<meta http-equiv="cache-control" content="no-cache">
<!-- Prevent caching at the proxy server -->
<meta http-equiv="expires" content="0">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />


【2】http-equiv属性


http-equiv 属性为名称/值对提供了名称。并指示服务器在发送实际的文档之前先在要传送给浏览器的 MIME 文档头部包含名称/值对。


当服务器向浏览器发送文档时,会先发送许多名称/值对。虽然有些服务器会发送许多这种名称/值对,但是所有服务器都至少要发送一个:content-type:text/html。这将告诉浏览器准备接受一个 HTML 文档。


使用带有 http-equiv 属性的 <meta> 标签时,服务器将把名称/值对添加到发送给浏览器的内容头部

————————————————

① Content-type(显示字符集设定)

说明:设置网页编码格式告诉浏览器使用何种编码进行解码。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


具体如下:


meta标签的charset的信息参数如GB2312时,代表说明网站是采用的编码是简体中文;


meta标签的charset的信息参数如BIG5时,代表说明网站是采用的编码是繁体中文;


meta标签的charset的信息参数如iso-2022-jp时,代表说明网站是采用的编码是日文;


meta标签的charset的信息参数如ks_c_5601时,代表说明网站是采用的编码是韩文;


meta标签的charset的信息参数如ISO-8859-1时,代表说明网站是采用的编码是英文;


meta标签的charset的信息参数如UTF-8时,代表世界通用的语言编码;content-Language(显示语言的设定)

<meta http-equiv="Content-Language"content="zh-cn"/>


②Expires(期限)

说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。

<meta http-equiv="Expires" content="-10"/>


③ Pragma(cache模式)

说明:禁止浏览器从本地计算机的缓存中访问页面内容。

<meta http-equiv="Pragma" content="no-cache" />


④ Cache-Control

说明:Cache-Control指定请求和响应遵循的缓存机制。

<meta http-equiv="Cache-Control" content="no-cache"/>


在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。


请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached。


响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下

public:指示响应可被任何缓存区缓存
private:指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。
这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效
no-cache:指示请求或响应消息不能缓存
no-store:用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age:指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应
min-fresh:指示客户机可以接收响应时间小于当前时间加上指定时间的响应
max-stale:指示客户机可以接收超出超时期间的响应消息。
如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。


⑤ Refresh(刷新)

说明:自动刷新并指向新页面。

一秒刷新页面一次

response.setHeader("refresh","1");



二秒跳到其他页面

response.setHeader("refresh","2;URL=otherPagename");


效果同下:

<meta http-equiv="refresh" content="5;url=http://www.w3school.com.cn" />


⑥ Set-Cookie(cookie设定)

说明:如果网页过期,那么存盘的cookie将被删除。

<meta http-equiv=set-cookie content="testcookie" />

⑦ Window-target(显示窗口的设定)

说明:强制页面在当前窗口以独立页面显示。

<meta http-equiv="Window-target"content="_top">


强制页面在当前窗口中以独立页面显示,可以防止自己的网页被别人当作一个frame页调用。


⑧ X-UA-Compatible

说明: IE8的专用标记,用来指定IE8浏览器去模拟某个特定版本的IE浏览器的渲染方式,以此来解决部分兼容问题。

<meta http-equiv="X-UA-Compatible" content="IE=7">


以上代码告诉IE浏览器,无论是否用DTD声明文档标准,IE8/9都会以IE7引擎来渲染页面。

<meta http-equiv="X-UA-Compatible" content="IE=8">

以上代码告诉IE浏览器,IE8/9都会以IE8引擎来渲染页面。

<meta http-equiv="X-UA-Compatible" content="IE=edge">



以上代码告诉IE浏览器,IE8/9及以后的版本都会以最高版本IE来渲染页面。

<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">


以上代码IE=edge告诉IE使用最新的引擎渲染网页,chrome=1则可以激活Chrome Frame.


PS:谷歌添加一个插件:Google Chrome Frame(谷歌内嵌浏览器框架GCF),这个插件可以让用户的IE浏览器外不变,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核,而且支持IE6、7、8等多个版本的IE浏览器。

【3】name属性

name 属性提供了名称/值对中的名称。HTML 和 XHTML 标签都没有指定任何预先定义的 <meta> 名称。即,可以自由使用对自己来说富有意义的名称。


① Keywords(关键字)

说明:keywords用来告诉搜索引擎你网页的关键字是什么。

某些搜索引擎在遇到这些关键字时,会用这些关键字对文档进行分类。

<meta name="keywords" content="HTML,ASP,PHP,SQL">

② description(网站内容描述)

说明:description用来告诉搜索引擎你的网站主要内容。

<meta name="description"content="meta是html语言head区的一个辅助性标签。">

③ robots(机器人向导)

说明:robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。


content的参数有all,none,index,noindex,follow,nofollow。默认是all。


<meta name="robots"content="none">  

具体参数如下:


信息参数为all:文件将被检索,且页面上的链接可以被查询;


信息参数为none:文件将不被检索,且页面上的链接不可以被查询;


信息参数为index:文件将被检索;


信息参数为follow:页面上的链接可以被查询;


信息参数为noindex:文件将不被检索,但页面上的链接可以被查询;


信息参数为nofollow:文件将被检索,但页面上的链接不可以被查询;

④ author(作者)

说明:标注网页的作者

<meta name="author"content="janus">

⑤ copyright

说明:网站版权信息

<meta name="copyright" content="本页版权 www.qidian.com 起点中文网所有。All Rights Reserved" />

⑥ revised

说明:网页文档的修改时间

<meta name="revised" content="设计网, 6/24/2015"/>

⑦ generator

说明:网站的采用的什么软件制作

<meta name="generator" content="Microsoft"/>

⑧ renderer

指定双核浏览器默认以何种方式渲染页面。

<meta name="renderer" content="webkit">//默认webkit内核
<meta name="renderer" content="ie-comp">//默认IE兼容模式
<meta name="renderer" content="ie-stand">//默认IE标准模式

⑨ viewport

说明:用于控制页面缩放


<meta name="viewport" content="width=device-width, initial-scale=1, 
maximum-scale=1, minimum-scale=1, user-scalable=no">


目录
相关文章
|
22天前
|
移动开发 HTML5
HTML5 表单属性3
`&lt;input&gt;` 标签的 `formaction`、`formenctype` 和 `formmethod` 属性分别用于指定表单提交的 URL 地址、数据编码类型和提交方法,这些属性可覆盖 `&lt;form&gt;` 标签中的相应属性,并且主要适用于 `type=&quot;submit&quot;` 和 `type=&quot;image&quot;` 的输入类型。
|
20天前
|
移动开发 JavaScript 前端开发
HTML5 表单属性7
`pattern` 属性使用正则表达式验证 `&lt;input&gt;` 元素的值,适用于 `text`, `search`, `url`, `tel`, `email`, 和 `password` 类型。
|
20天前
|
移动开发 UED HTML5
HTML5 表单属性6
`min`、`max` 和 `step` 属性用于限制 `&lt;input&gt;` 标签中的数值或日期范围。例如,可以设置日期选择器的最早和最晚日期,或限制数字输入框的值范围。`multiple` 属性允许在 `&lt;input&gt;` 中选择多个值,适用于邮箱和文件类型。这些属性增强了表单控件的功能性和用户体验。
|
20天前
|
移动开发 HTML5
HTML5 表单属性5
`height` 和 `width` 属性用于 `&lt;input&gt;` 标签中的 `image` 类型,定义图像的高度和宽度。
|
22天前
|
移动开发 HTML5
HTML5 表单属性4
`formnovalidate` 属性是一个布尔属性,用于 `&lt;input&gt;` 元素,指示该输入在表单提交时不需验证,可覆盖 `&lt;form&gt;` 元素的 `novalidate` 属性,常与 `type=&quot;submit&quot;` 一起使用。示例中展示了如何通过两个提交按钮(一个使用验证,另一个不使用)实现不同的表单提交方式。
|
22天前
|
移动开发 JavaScript 前端开发
HTML5 表单属性2
`novalidate` 是 HTML `&lt;form&gt;` 元素的布尔属性,用于禁用浏览器的默认表单验证功能。当此属性存在时,浏览器不会检查表单字段是否符合预设的验证规则,允许开发者通过 JavaScript 等手段自定义验证逻辑。
|
19天前
|
移动开发 数据安全/隐私保护 HTML5
HTML5 表单属性8
`required`属性确保表单提交前输入框不能为空,适用于多种类型的 `&lt;input&gt;` 标签,如文本、邮箱、密码等。`step`属性则用于指定输入域中合法数值的间隔,常与`max`和`min`属性配合使用,适用于数字、日期等类型。例如,设置`&lt;input type=&quot;number&quot; step=&quot;3&quot;&gt;`可使输入值以3为单位递增或递减。
|
1天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
109 85
|
2月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
78 6
|
1月前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
下一篇
DataWorks