HTML - meta タグの仕様詳細まとめ
前エントリ - Internet Explorer のイメージツールバーを無効化する meta タグ で予告したとおり meta タグについて生まれて初めてまじめに調べてみました。改めて調べてみると知らなかったこと満載です。っていうか Web エンジニアたるもの一度は W3C勧告 くらいは一通り目を通しておかなくてはダメだなと思ったりしました。面倒なくらい分量があるけど。ひとまず meta タグ情報としての自分にとって永久保存版まとめという位置づけです。
まずは参考になったサイトの紹介から。
- W3C勧告HTML4.01 :: The global structure of an HTML document
- W3C勧告HTML4.01 私的日本語訳 :: The global structure of an HTML document(ja)
- rfc2616.txt
- Another HTML-lint : Tags List
- Internet Explorer Developer Center < meta Object
- Internet Explorer Developer Center < name Property (META)
- Internet Explorer Developer Center < httpEquiv Property (META)
- Internet Explorer Developer Center < HTTP Response Headers
- とほほのWWW入門 > HTMLリファレンス > <meta>
- W3C HTML4入門編 > META要素例
さて改めて meta タグの仕様用途についてです。以下で説明していくにあたって W3C 勧告を引用する部分は原文(英語)ではなく W3C 勧告HTML4.01 私的日本語訳を引用してわかりやすく説明をしていきたいと思います。
META要素とは
META要素は、メタデータを指定するための一般的機構である。しかし、HTML要素・属性の中には、既に何らかのメタデータを取り扱うためのものがあり、著者によってMETA要素の代わりにメタデータ指定に使われ得る。 TITLE要素、ADDRESS要素、INS及びDEL要素、title属性、cite属性がそれである。
META データは以下のような構文で定義される。
<!ELEMENT META - O EMPTY -- generic metainformation --> <!ATTLIST META %i18n; -- lang, dir, for use with content -- http-equiv NAME #IMPLIED -- HTTP response header name -- name NAME #IMPLIED -- metainformation name -- content CDATA #REQUIRED -- associated information -- scheme CDATA #IMPLIED -- select form of content -- >
属性定義
以下の属性に関して、許容される値及び解釈は、プロファイルに依存する。
- name = name [CS]
- この属性は、プロパティの名前を識別させる。本仕様は、当該属性の正当な値集合を列挙しない。
- content = cdata [CS]
- この属性は、プロパティの値を指定する。本仕様は、当該属性の正当な値集合を列挙しない。
- scheme = cdata [CS]
- この属性は、プロパティ値の解釈に用いるべきスキームの名前を示す (詳しくはプロファイルの項を参照されたい)。
- http-equiv = name [CI]
- この属性はnameと置き換えて用いられ得る。HTTPサーバは、この属性を、HTTP応答メッセージヘッダに用いる情報を収集するために用いる。
別途定義がある属性
- lang = language-code [CI]
- この属性は、当該要素の属性値及び内容テキストの基本言語を指定する。デフォルト値は「不明」である。
- dir = LTR | RTL [CI]
- この属性は、当該要素内容及び属性値における、方向性について中立なテキスト(すなわち、 [UNICODE]が定義する固有の方向性を持たないテキスト)の、基本方向を指定する。この値はまた、表の方向性についても指定する。可能な値は次の通り。
LTR: 左から右の、テキストあるいは表。
RTL: 右から左の、テキストあるいは表。
META要素とHTTPヘッダの関係
http-equiv属性は、name属性の代わりに用いられ得る。その場合、文書がハイパーテキスト転送プロトコル(HTTP)で取得される際に特別な意味を持つ。HTTPサーバは http-equiv属性で指定されるプロパティ名を、HTTP応答における[RFC822]形式のヘッダ生成に用いるであろう。適正なHTTPヘッダに関する詳細は、HTTP仕様([RFC2616])を参照されたい。例)次のMETA宣言の例からは:
次のようなHTTPヘッダが生成される。
具体的な例。様々な META タグまとめ一覧
さて能書き(自分用の備忘録)はココまでにして実際にはこんな meta タグがあります一覧です。マニュアル嫁的な meta タグはいちいち説明をかきませんでした。<meta name="Author" content="作者情報">
<meta name="Description" content="本文要約">
<meta name="Keywords" content="キーワード1,キーワード2,キーワード3">
<meta name="Generator" content="ページの作成に使用したソフト名">
<meta name="Robots" content="noindex, nofollow, index, follow">
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=文字コード">
<meta http-equiv="Default-Style" content="デフォルトスタイルシート">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="日時(GMT) or 秒数">
<meta http-equiv="Refresh" content="秒数;URL=http://・・・"> ※リダイレクト
<meta http-equiv="Refresh" content="秒数"> ※リロード
<meta http-equiv="Page-Enter" content="blendTrans(Duration=秒数,Enabled=1)"> ※ページ効果
<meta http-equiv="Page-Exit" content="blendTrans(Duration=秒数,Enabled=1)"> ※ページ効果
<meta http-equiv="Site-Enter" content="blendTrans(Duration=秒数,Enabled=1)"> ※ページ効果
<meta http-equiv="Site-Exit" content="blendTrans(Duration=秒数,Enabled=1)"> ※ページ効果
<meta http-equiv="Imagetoolbar" content="no"> ※イメージツールバーを表示しない
<meta http-equiv="noscript"> ※javascript off
<meta http-equiv="cleartype" content="on"> ※cleartype フォントを on
<meta http-equiv="msthemecompatible" content="no"> ※視覚テーマの有効/無効
その他は http-equiv="name" の name 値としてこんなのがあります。MSDN から引っ張り出しての引用です。
※前述したものと重複しているのもありますがあしからず・・・
- ACCEPT
- Acceptable media types.
- ACCEPT-CHARSET
- Acceptable character sets.
- ACCEPT-ENCODING
- Acceptable content-coding values.
- ACCEPT-LANGUAGE
- Acceptable natural languages.
- ACCEPT-RANGES
- Types of range requests that are accepted.
- AGE
- An estimate of the amount of time since the response was generated at the origin server.
- ALLOW
- Methods supported by the server.
- AUTHORIZATION
- Authorization credentials used for a request.
- CACHE-CONTROL
- Cache control directives.
- CONNECTION
- Options that are specified for a particular connection and must not be communicated by proxies over further connections.
- CONTENT-BASE
- Base Uniform Resource Identifier (URI) for resolving relative URLs within the entity.
- CONTENT-DESCRIPTION
- Obsolete. Maintained for legacy application compatibility only.
- CONTENT-DISPOSITION
- Obsolete. Maintained for legacy application compatibility only.
- CONTENT-ENCODING
- Any aitional content codings that have been applied to the entire resource.
- CONTENT-ID
- Content identification.
- CONTENT-LANGUAGE
- Language in which the content is presented.
- CONTENT-LENGTH
- Size of the resource, in bytes.
- CONTENT-LOCATION
- Resource location for the entity enclosed in the message.
- CONTENT-MD5
- MD5 digest of the entity-body for the purpose of providing an end-to-end message integrity check (MIC) for the entity-body. For more information, see RFC1864, The Content-MD5 Header Field, at http://ftp.isi.edu/in-notes/rfc1864.txt .
- CONTENT-RANGE
- Location in the full entity-body where the partial entity-body should be inserted and the total size of the full entity-body.
- CONTENT-TRANSFER_ENCODING
- Aitional content coding that has been applied to the resource.
- CONTENT-TYPE
- Content type of the resource (such as text/html).
- COOKIE
- Cookies associated with the request.
- COST
- Not supported.
- DATE
- Date and time at which the message was originated.
- DERIVED-FROM
- Not supported.
- ECHO-HEADERS
- Not implemented.
- ECHO-HEADERS-CRLF
- Not implemented.
- ECHO-REPLY
- Not implemented.
- ECHO-REQUEST
- Not implemented.
- ETAG
- Entity tag for the associated entity.
- EXPECT
- Expect header, which indicates whether the client application should expect 100 series responses.
- EXPIRES
- Date and time after which the resource should be considered outdated.
- FORWARDED
- Obsolete. Maintained for legacy application compatibility only.
- FROM
- E-mail aress for the human user who controls the requesting user agent if the From header is given.
- HOST
- Internet host and port number of the resource being requested.
- IF-MATCH
- Contents of the If-Match request-header field.
- IF-MODIFIED-SINCE
- Contents of the If-Modified-Since header.
- IF-NONE-MATCH
- Contents of the If-None-Match request-header field.
- IF-RANGE
- Contents of the If-Range request-header field. This header allows the client application to check if the entity related to a partial copy of the entity in the client application's cache has not been updated. If the entity has not been updated, send the parts that the client application is missing. If the entity has been updated, send the entire updated entity.
- IF-UNMODIFIED-SINCE
- Contents of the If-Unmodified-Since request-header field.
- LAST-MODIFIED
- Date and time at which the server believes the resource was last modified.
- LINK
- Obsolete. Maintained for legacy application compatibility only.
- LOCATION
- Absolute URI.
- MAX
- Not a query flag. Indicates the maximum value of an * value.
- MAX-FORWARDS
- Number of proxies or gateways that can forward the request to the next inbound server.
- MESSAGE-ID
- Not supported.
- MIME-VERSION
- Version of the MIME protocol that was used to construct the message.
- MSTHEMECOMPATIBLE
- Microsoft Internet Explorer 6 and later. Disables theming support for a Web page. The content attribute of the meta element must be set to no.
- ORIG-URI
- Obsolete. Maintained for legacy application compatibility only.
- PRAGMA
- Implementation-specific directives that might apply to any recipient along the request/response chain.
- PROXY-AUTHENTICATE
- Authentication scheme and realm returned by the proxy.
- PROXY-AUTHORIZATION
- Header that is used to identify the user to a proxy that requires authentication. This header can only be retrieved before the request is sent to the server.
- PROXY-CONNECTION
- Proxy-Connection header.
- PUBLIC
- Methods available at this server.
- RANGE
- Byte range of an entity.
- RAW-HEADERS
- All the headers returned by the server. Each header is terminated by "\0". An aitional "\0" terminates the list of headers.
- RAW-HEADERS-CRLF
- All the headers returned by the server. Each header is separated by a carriage return/line feed (CR/LF) sequence.
- REFERER
- URI of the resource where the requested URI was obtained.
- REFRESH
- Obsolete. Maintained for legacy application compatibility only.
- REQUEST-METHOD
- Verb that is used in the request, typically GET or POST.
- RETRY-AFTER
- Amount of time the service is expected to be unavailable.
- SERVER
- Information about the software used by the origin server to handle the request.
- SET-COOKIE
- Value of the cookie set for the request.
- STATUS-CODE
- Status code returned by the server. For a list of possible values, see HTTP Status Codes.
- STATUS-TEXT
- Any aitional text returned by the server on the response line.
- TITLE
- Obsolete. Maintained for legacy application compatibility only.
- TRANSFER-ENCODING
- Type of transformation that has been applied to the message body so it can be safely transferred between the sender and recipient.
- UNLESS-MODIFIED-SINCE
- Unless-Modified-Since header.
- UPGRADE
- Aitional communication protocols that are supported by the server.
- URI
- Some or all of the URIs by which the Request-URI resource can be identified.
- USER-AGENT
- Information about the user agent that made the request.
- VARY
- Header that indicates that the entity was selected from a number of available representations of the response using server-driven negotiation.
- VERSION
- Last response code returned by the server.
- VIA
- Intermediate protocols and recipients between the user agent and the server on requests, and between the origin server and the client on responses.
- WARNING
- Aitional information about the status of a response that might not be reflected by the response status code.
- WWW-AUTHENTICATE
- Authentication scheme and realm returned by the server.
とりあえず、まとめるの疲れた・・・。おしまい。
__追記__
ie8 からは更に混沌とした meta タグの乱用がされる模様です。ie 6/7/8 の互換性が保証できないので meta要素で ie の挙動を指定するとのこと。なんじゃそれ?
コメントやシェアをお願いします!
Ilfa
こういうのもありますよ。
<meta name="WWWC" content="yyyy/mm/dd hh:mm:ss" />
contentの中身はサイトの更新日時です。