You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
⚠️ 注意: 一般情况下,在 HTML 页面中,<a> 标签的 DNS 预解析在默认情况下是自动启用的。但是在 HTTPS 协议中为了安全和隐私原因会禁用 DNS 预解析,此时可以手动使用 <meta http-equiv="x-dns-prefetch-control" content="on" /> 来开启 DNS 预解析。
前言
之前在公司做文档管理的项目时,发现文档中外部粘贴的图片无法正常显示,最后是通过在
<head>
标签内部添加这行代码才解决的。我发现自己对
<meta>
标签所知甚少,所以才有了这篇文章来整理相关的知识点,如果哪里写的有问题欢迎指出。meta 标签是什么
<meta>
标签用于表示 HTML 相关的元数据信息。页面上不会显示这些信息。何为元数据?MDN 上给出的解释:元数据就是用来描述数据的数据,HTML 文件也是一种数据,所以
<meta>
标签可以说是用来描述 HTML 文件的数据。<meta>
标签可以描述 HTML 文档的作者、日期时间、网页描述、关键词、页面刷新等。meta 标签的结构
<meta>
标签有以下四种属性:chartset
content
http-equiv
name
其中
content
属性无法单独使用,content
属性中的内容用于对应name
、http-equiv
属性的具体描述,只是单独使用content
属性没有实际作用,例如:为什么要有 meta 标签
<meta>
标签大致有如下四个重要的作用:下面从这四个作用来具体讲讲
搜索引擎优化(SEO)
keywords
作用:告诉搜索引擎网页的关键字,帮助搜索引擎理解网页的主题内容。
具体格式如下:
淘宝的
keywords
如下:这里的搜索引擎虽然没有明说是哪个,不过我猜测大概率指的是 Google 搜索引擎。平常开发的时候还是加上
keywords
比较好,毕竟有总比没有好。description
作用:告诉搜索引擎网页的主要内容。
淘宝的
description
如下:robots
作用:告诉搜索引擎爬虫网页如何抓取和索引网页。
具体格式如下:
例如:
上述代码参数的含义:
noindex
:告诉搜索引擎爬虫不要在搜索结果中显示该网页nofollow
:告诉搜索引擎爬虫不要追踪该网页上的链接默认情况下
content
参数的值为all
,表示对搜索引擎爬虫没有任何限制,还有更多的其它的参数可以参考有效的索引编制规则和内容显示规则页面性能优化
renderer
作用:指定双核浏览器默认以哪种方式渲染页面。
X-UA-Compatible
作用:指定 IE 的渲染模式,用于处理 IE 不同版本之间的兼容性问题,只对 IE 有效。
上述代码的作用:如果当前 IE 浏览器安装了
Google Chrome Frame
插件(可以让 IE 浏览器使用 Chrome 引擎和相关功能),则优先使用 WebKit 内核,反之使用浏览器支持的最新渲染模式。IE=edge
IE=10
IE=9
IE=8
IE=7
IE=5
chrome=1
<meta>
标签中设置的冲突,优先使用 HTTP 响应头中配置的属性。用户体验优化
viewport
作用:针对移动设备上网页的显示优化
content
属性内有以下参数:width
:表示视口宽度,可以是具体数值或device-width
(表示设备的宽度)height
:表示视口的高度,可以是具体是的数值或device-height
(表示设备的高度)initial-scale
:表示初始化缩放比例,取值为浮点数,1.0
表示 100% 缩放(默认缩放),0.5
表示 50% 缩放(页面缩小一半)minimum-scale
:表示用户可以缩放的最小比例,取值为浮点数maximum-scale
:表示用户可以缩放的最大比例,取值为浮点数user-scalable
:表示是否允许用户手动缩放页面,取值为no
或yes
,默认是yes
禁止百度自动转码
为什么百度会有转码问题可以参考百度移动搜索优化与百度网页转码
UC 浏览器
QQ 浏览器
360 浏览器
提高安全性
Content Security Policy
作用:配置网页的安全策略(CSP),有助于防止 XSS 攻击
上述代码的参数解释如下:
script-src 'self';
:表示限制脚本的来源,'self'
表示只允许加载同源的脚本文件object-src 'none';
:表示禁止加载任何<object>
、<embed>
元素,'none'
表示完全禁止这些类型的资源style-src cdn.example.org third-party.orgl;
:表示限制样式的来源,cdn.example.org third-party.org
表示只允许从cdn.example.org
和third-party.org
加载样式资源child-src https:
:表示只限制嵌套浏览上下文(如<iframe>
)的来源,https:
表示只允许加载 HTTPS 协议的子资源(如<iframe>
内容)关于 CSP 相关的内容可以看阮一峰前辈的 Content Security Policy 入门教程
referrer
作用:控制 HTTP 请求头中
Referer
参数的行为默认情况在我们发送网络请求的时候,请求头中会携带
Referer
参数,它的值为当前网站的域名,用来标识来源。服务器可能用以下三种策略通过
Referer
参数的值进行处理:Referer
头,以确保所有外部资源(如图像、视频、字体等)的请求都来自同一站点或一组授权站点。如果Referer
头缺失或不符合预设的规则,服务器可能会拒绝请求。Referer
头显示请求来自一个不在白名单上的源,服务器将拒绝请求。当使用
<meta name="referrer" content="no-referrer" />
时,浏览器不会在请求头中发送Referer
信息,服务器也就无法通过Referer
参数进行判断和处理。这也解释了为什么文章开头的问题。Referer
只允许特定地址,其余的、空白的Referer
参数一律拒绝,那么即使使用了no-referrer
也还是无法请求成功。完整的
content
值如下:no-referrer
Referer
头部信息no-referrer-when-downgrade
Referer
;否则发送完整的 URL(默认行为)origin
origin-when-cross-origin
same-origin
Referer
strict-origin-when-cross-origin
Referer
unsafe-url
x-dns-prefetch-control
作用:控制浏览器 DNS 预解析功能
有以下两种值:
on
:启用 DNS 预解析,默认行为,适用于需要加速资源加载的场景。off
:禁用 DNS 预解析,适用于隐私保护或避免多余的 DNS 请求的场景。<a>
标签的 DNS 预解析在默认情况下是自动启用的。但是在 HTTPS 协议中为了安全和隐私原因会禁用 DNS 预解析,此时可以手动使用<meta http-equiv="x-dns-prefetch-control" content="on" />
来开启 DNS 预解析。其它
charset
作用:指定网页的字符编码方式
该属性是 HTML5 新增的,等价于过去的写法
一般来说从服务器发送 HTML 网页时,会通过 HTTP 响应头信息声明网页的编码方式,如下:
text/html
是文件类型,表示 HTML 网页charset=UTF-8
是指定网页的字符编码方式为UTF-8
网页内部通过
<meta>
标签再次声明网页文字的编码方式。author
作用:声明网页作者信息,对搜索引擎优化(SEO)没有直接影响。
具体格式如下:
例如:
也可以把联系方式写在里面
generator
作用:表示当前 HTML 是使用什么工具写的,对搜索引擎优化(SEO)没有直接影响。
总结
<meta>
标签用于表示 HTML 相关的元数据信息,元数据信息不会在页面中显示<meta>
标签可以用于搜索引擎优化(SEO)、页面性能优化、用户体验优化和提高安全性参考文章
The text was updated successfully, but these errors were encountered: