元數據即描述數據的數據
meta
一個html文件是一個數據,meta標籤就是用來描述該文件的元數據
位於文檔的頭部,不包含任何內容,僅提供頁面的說明,關鍵字等數據,服務於瀏覽器,搜索引擎和其他網絡服務
標籤的屬性定義了與文檔相關聯的名稱/鍵值對
- http-equiv: 把
content
屬性關聯到HTTP
頭部content-type
expires
refresh
set-cookie
- name: 把
content
屬性關聯到一個名稱author
description
keywords
generator
revised
others
- content: 於
http-equiv
和name
屬性相關的元信息 - charset:聲明當前文檔所使用的字符編碼
Notes
- 必須位於
head
元素內部 - 總是以名稱/值的形式被成對傳遞的
- 一個
meta
元素只用於一種用途 - 如果設置了
name
,則說明是一個文檔頁面,適用於整個頁面 - 如果設置了
http-equiv
,則是一個pragma
指令,通常由Web服務器提供有關如何提供網頁的信息。 - 如果設置了
charset
,則是字符集聲明,用於網頁所使用的字符編碼。 - 如果設置了
itemprop
,則是用戶定義的元數據 - 對於用戶代理是透明的,因爲元數據的語義是特定於用戶的
name
定義元數據的名稱,與content
屬性包含的值相關聯。HTML 和 XHTML 標籤都沒有指定任何預先定義的 <meta>
名稱。通常情況下,您可以自由使用對自己和源文檔的讀者來說富有意義的名稱。
-
application-name
:定義正運行在該網頁上的網絡應用名稱- 簡單的網頁不應該去定義
-
author
:文檔的作者名稱 -
description
:內容的簡短和精確描述,一些瀏覽器,如Firefox和Opera,將其用作書籤頁面的默認描述。 -
generator
:生成頁面的軟件的標識符 -
keywords
:用逗號分隔的與頁面內容相關的單詞 -
referrer
:控制所有從該頁面發出的HTTP請求中referer
首部的內容。content
取值:數據來源於MDNcontent 解釋 no-referrer
不要發送 HTTP Referer
首部。origin
發送當前文檔的 origin。 no-referrer-when-downgrade
當目的地是先驗安全的(https->https)則發送 origin 作爲 referrer ,但是當目的地是較不安全的 (https->http)時則不發送 referrer 。這個是默認的行爲。 origin-when-crossorigin
在同源請求下,發送完整的URL (不含查詢參數) ,其他情況下則僅發送當前文檔的 origin。 unsafe-URL
在同源請求下,發送完整的URL (不含查詢參數)。 -
creator
:文檔創建者的名稱,可以是機構的名稱,有多個的話必須定義多個meta
-
googlebot
:robots
谷歌的索引抓取工具Googlebot 的同義詞,只適用於google -
publisher
:以自由格式定義文檔發佈者的名稱,可以是機構的名稱。 -
robots
:定義協作爬蟲應該與頁面的行爲,以逗號分隔的值的列表。數據來源於MDN值 描述 使用者 index
允許機器人索引頁面 所有 noindex
阻止機器人索引頁面 所有 follow
允許機器人跟蹤頁面上的鏈接 所有 nofollow
阻止機器人跟蹤頁面上的鏈接 所有 noodp
阻止使用Open Directory Project描述(如果有)作爲搜索引擎結果頁面中頁面的描述 谷歌,雅虎,必應 noarchive
阻止搜索引擎緩存頁面內容 谷歌,雅虎 nosnippet
阻止在搜索引擎結果頁面中顯示頁面的任何描述 谷歌 noimageindex
阻止此頁面顯示爲索引圖像的引用頁面 谷歌 noydir
阻止使用Yahoo Directory描述(如果有)作爲搜索引擎結果頁面中頁面的描述 雅虎 nocache
同義詞 noarchive
Bing -
slurp
:與robots
一樣, 但其僅使用於 Slurp – Yahoo Search的抓取工具。 -
rebderer
:爲雙核瀏覽器準備,用於指定雙核瀏覽器默認以何種方式渲染頁面 -
viewport
:提供有關視口初始大小的提示,僅供移動設備使用。數據來源於MDN值 可能值 描述 width
一個正整數或者字符串 device-width
以pixels(像素)爲單位, 定義viewport(視口)的寬度。 height
一個正整數或者字符串 device-height
以pixels(像素)爲單位, 定義viewport(視口)的高度。 initial-scale
一個0.0
到10.0之間的正數
定義設備寬度(縱向模式下的設備寬度或橫向模式下的設備高度)與視口大小之間的縮放比率。 maximum-scale
一個0.0
到10.0之間的正數
定義縮放的最大值;它必須大於或等於 minimum-scale
的值,不然會導致不確定的行爲發生。minimum-scale
一個 0.0
到10.0
之間的正數定義縮放的最小值;它必須小於或等於 maximum-scale
的值,不然會導致不確定的行爲發生。user-scalable
一個布爾值( yes
或者no
)如果設置爲 no
,用戶將不能放大或縮小網頁。默認值爲yes
。
Notes
- 設置了
itemprop
,http-equiv
orcharset
中任意一個屬性 ,都不能在設置這個屬性了。 - 動態的插入
<meta name="referrer">
是不起作用的,如果同時有多個彼此衝突的策略被定義,那麼 no-referrer 策略會生效。 - 如果沒有提供 name 屬性,會採用 http-equiv 屬性的值。
charset
聲明當前文檔所使用的字符編碼,可以被具有lang
屬性的元素所覆蓋。值必須是一個符合由IANA所定義的字符編碼首選MIME 名稱(preferred MIME name )之一。
Notes
- 鼓勵使用UTF-8
- 不應該使用不兼容ASCII的編碼規範, 以避免不必要的安全風險:瀏覽器不支持他們(這些不規範的編碼)可能會導致瀏覽器渲染html出錯. 比如
JIS_C6226-1983
,JIS_X0212-1990
,HZ-GB-2312
,JOHAB
,ISO-2022 系列,EBCDIC系列 等文字 - 非兼容ASCII編碼就是那些不會將8位代碼點的
0x20
到0x7E
映射爲Unicode代碼點0x0020
到0x007E
的編碼) - 開發者必須禁用
CESU-8
,UTF-7
,BOCU-1
或SCSU
這些字符集,因爲這些字符集已經被證實存在跨站腳本攻擊(XSS)的風險。 - 開發者應儘量避免使用
UTF-32
字符集對網頁進行編碼,因爲不是所有的HTML5編碼算法能夠將其與UTF-16
編碼區分開來。 - 聲明的字符編碼必須與頁面保存所使用的編碼相匹配,以避免亂碼和安全漏洞.
- HTTP的Content-Type頭部以及任何Byte-Order Marks元素都優先於此元素。
- 強烈建議使用該屬性定義字符編碼. 如果未定義,某些跨腳本技術可能危害網頁
http-equiv
指示服務器在發送實際的文檔之前先在要傳送給瀏覽器的 MIME 文檔頭部包含名稱/值對。
content-language
:定義頁面使用的默認語言- 儘量使用全劇屬性
lang
來代替
- 儘量使用全劇屬性
content-security-policy
:允許頁面作者定義當前頁的 內容策略。 內容策略主要指定允許的服務器源和腳本端點,這有助於防止跨站點腳本攻擊。content-type
:定義文檔的MIME type- 使用
charset
代替
- 使用
default-style
:指定了在頁面上使用的首選樣式表refresh
- 如果
content
只包含一個正整數,則是重新載入頁面的時間間隔 - 如果
content
包含一個正整數並且跟着一個字符串,則是重定向到指定鏈接的時間間隔
- 如果
set-cookie
:爲頁面定義cookie- 該用HTTP的
Set-Cookie
代替
- 該用HTTP的
robots.txt和meta robots區別
robots.txt
阻止搜索引擎抓取頁面,一般不建議使用
創建
在根目錄創建robots.txt
內容
User-agent:搜索引擎的值(*表示所有),比如Baiduspider
,Googlebot
,MSNBot
等
Disallow:不希望抓取的頁面路徑
Allow:禁止抓取的路徑裏面存在子路徑需要被抓取
應用場景
- 未完成的頁面
- 測試頁面
- 網站後臺
meta robots
在索引層面阻止搜索引擎索引頁面,但搜索引擎還是抓取了頁面的
應用場景
- 當網頁不適合出現但是又可以提高SEO排名