HTML - meta タグの仕様詳細まとめ

前エントリ - Internet Explorer のイメージツールバーを無効化する meta タグ で予告したとおり meta タグについて生まれて初めてまじめに調べてみました。改めて調べてみると知らなかったこと満載です。っていうか Web エンジニアたるもの一度は W3C勧告 くらいは一通り目を通しておかなくてはダメだなと思ったりしました。面倒なくらい分量があるけど。ひとまず 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宣言の例からは:

<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">

次のようなHTTPヘッダが生成される。

Expires: Tue, 20 Aug 1996 14:25:27 GMT

具体的な例。様々な 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 の挙動を指定するとのこと。なんじゃそれ?

<meta http-equiv="X-UA-Compatible" content="IE=8" />
- スポンサーリンク -

関連する記事&スポンサーリンク