プラグマ指令

meta 要素 http-equiv 属性 (HTML)

[76] meta 要素http-equiv 属性は、プラグマ指令の名前を指定します。

仕様書

意味

[75] http-equiv 属性が指定された meta 要素は、プラグマ指令 (pragma directive) です >>66

属性値

[77] http-equiv 属性は、列挙属性です >>66。 値はASCII大文字・小文字不区別です。

[84] http-equiv 属性で使える値は、 HTML Standard で規定されている他、 WHATWG Wiki の登録ページ >>2 にだれでも登録できる >>66 ことになっています。

[85] 実際にはそれ以外の値もたまに使われることがあります。

[86] 登録する値は HTTPヘッダーとして IANA登録簿に登録された名前と同じもので、 動作も同じでなければならない >>66 とされています。ただし (WHATWG Wiki でなく) HTML Standard で規定されている値の中には IANA登録簿に無いものもありますし、 HTTPヘッダーの動作と異なることもあります。

[87] HTML Standard にも WHATWG Wiki にも無く実際に使われている値の多くは、 IANA登録簿に登録されていませんし、 HTTPヘッダーと整合性があるとも限りません。

[88] メタデータを記述するヘッダーに相当するものや利用者エージェントに特定の動作を求めるわけではないものは、 <meta name> を使うべきで、登録してはなりません >>66キャッシュなどHTTPの処理に影響を与えるものは HTML レベルで扱うのは適切で無いため、登録してはなりません >>66

[89] 適合性検査器は、 http-equiv 属性の値の検査に WHATWG Wiki を使わなければなりませんHTML StandardWHATWG Wiki で承認されている値は適切、 WHATWG Wiki で拒絶されている値や掲載されていない値は不適切としなければなりません >>66

[78] content 属性で適切な値は、 http-equiv 属性の値に依存して決まります。

文脈

[68] <meta http-equiv> は、メタデータ内容であり head 要素子要素として使うことができます。

[69] 文字符号化宣言でない <meta http-equiv> は、 head 要素子要素である noscript 要素子要素としても使うことができます。

[70] スクリプト無効の場合のために noscript 要素内に <meta http-equiv=Refresh> を指定できます。

[71] http-equiv 属性は、 meta 要素に指定できます。 http-equiv 属性は、 name, charset, itemprop と共に指定してはなりません >>67

[72] http-equiv 属性を指定する場合には、 content 属性も指定しなければなりません >>67

[82] 同じ http-equiv 属性値<meta http-equiv> 要素文書中に複数あってはなりません >>66

IDL 属性

[74] HTMLMetaElement インターフェイスhttpEquiv IDL属性は、 http-equiv 内容属性反映しなければなりません >>73

処理

[79] 文書に挿入された時に、属性値に依存した処理が実行されます >>66

[80] 文書から削除された時や属性値が指定、変更、削除された時にも処理が実行されるかもしれません。

[81]属性値の項を参照。

文字符号化宣言

[90] meta 要素http-equiv 属性の値が Content-Type の時、この要素文字符号化宣言であり、 特別に扱われています。

歴史

[185] 初期の歴史については meta 要素の項を参照してください。

[175] HTML 由来で DTBookmeta 要素にもありました。

HTTP ヘッダーへの反映

[51] HTTP 鯖は、 http-equiv 属性付きの meta 要素を使って頭を作っても構いません RFC 1866 5.2.5, HTML 4。ただし、その方法は規定されていませんし、 使用することが強制されてもいません RFC 1866 5.2.5。 しかし、 http-equiv なき meta 要素を生成に使ってはなりません RFC 1866 5.2.5。 また、 Date, Server, Last-Modified のような鯖が生成する情報に関する meta 情報は捨てても構いません RFC 1866 5.2.5

HTML5

XXX

[160] ちなみに W3C HTML 5.0WHATWG Wiki の一覧表を参照しつつも、 その参照を規定ではなく参考としています >>162。 一覧表を使わなければならないとの部分は規定なので >>161、 仕様書として破綻しています。 (コピペ元の WHATWG HTML Standard では規定になっているので、 W3C の独自の編集によるエンバグです。)

実装

[50] M$DN の記事によると、 Pragma とかでは HTML でも HTTP 頭でも認識するけど Cache-Control は HTTP 頭じゃないと認識しないようにわざとしているとか。 だからまったく何も考えていないで行き当たりばったりというわけでもない、と。

属性値の一覧

[25] 次の属性値があります。

[83] 次の属性値もありますが、 name 属性値と誤っている可能性が極めて高いと思われます。

[49] 使用例 RFC 1866 5.2.5

<META HTTP-EQUIV="Expires"
      CONTENT="Tue, 04 Dec 1993 21:29:02 GMT">
<meta http-equiv="Keywords" CONTENT="Fred">
<META HTTP-EQUIV="Reply-to"
      content="fielding@ics.uci.edu (Roy Fielding)">
<Meta Http-equiv="Keywords" CONTENT="Barney">

これから生成した HTTP 応答の頭欄の例 RFC 1866 5.2.5

Expires: Tue, 04 Dec 1993 21:29:02 GMT
Keywords: Fred, Barney
Reply-to: fielding@ics.uci.edu (Roy Fielding)

[173] 角川オンラインショップ (2007-08-02 21:34:53 +09:00 版) http://www.k-o-s.jp/

<meta http-equiv="Set-Cookie" content="SIDS=0c410caba97eae4dec89f3d9d7822a02;expires=Thu, 02-Aug-2007 22:34:58 GMT;domain=k-o-s.jp;path=/">

要求CookieSIDS が指定されていればそれと同じ値、 そうでなければ新しい値が指定されているようです。 ちなみに HTTP 応答Set-Cookie は指定されていないようです。 (名無しさん)

メモ

[21] Author の例と Keywords の例を metatag I-D で発見。後者はニュースの Keywords: との絡みもあるし、更なる調査が必要の予感

[22] にしても、現代では namehttp-equiv ははっきり区別されている (大昔はそうではなかったが)。 それなのに両者の違いが分からず適当に使ってる香具師が多いこと。

[23] XHTML 2.0 ではぜひとも古き時代の遺物 http-equiv は削除して欲しいね。 HTTP header まで著者がいじれて当然の世界にとっとなって欲しい。

[24] >>2 謎のブラウザ新機能の制御のためになぜか http-equiv 使う M$ も何とかして下さい。 香具師のおかげで意味不明な HTTP header (例: MSThemeCompatible: 欄) がどれだけ増えたか。

[55] WMLScriptmeta http equiv pragma を規定しています。 (名無しさん [sage])

[56] WMLmeta 要素にも http-equiv 属性があります。 (名無しさん [sage])

[57] SSMLmeta 要素にも http-equiv 属性があります。 (名無しさん [sage])

[58] SRGS の XML 形の meta 要素にも http-equiv があります。 ABNF 形にも http-equiv 鍵語があります。

この仕様書の使用例には例によってあの間違った構文の Expires 欄を http-equiv で使っているのが載っています。 こうやっておかしなものが拡大再生産されているのは怖いなあ。 (名無しさん [sage])

[59] CCXML 1.0meta 要素にも http-equiv 属性があります。

Voice Browser Call Control: CCXML Version 1.0 http://www.w3.org/TR/2005/WD-ccxml-20050629/#edef_meta (名無しさん [sage] 2005-06-29 23:19:14 +00:00)

[63] Pronunciation Lexicon Specification (PLS) Version 1.0 http://www.w3.org/TR/2006/WD-pronunciation-lexicon-20060131/#S4.2 (名無しさん [sage])

[65] Webページ用の、正規HTML記述法 (2003年9月付) http://www.technofocus.co.jp/FUROKU/furoku3.html#gsic

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

この記述の意味は、「httpプロトコルで扱うコンテントのタイプは、HTMLというテキストファイルで、“Shift_JIS”文字セットで記述されている」 というもので、シフトJIS の指定ですが、殆どのパソコンはこれでいいでしょう

捏造乙。 (名無しさん)

[159] seamonkey/content/base/src/nsDocument.cpp (2007-02-19 03:10:12 +09:00 版) http://lxr.mozilla.org/seamonkey/source/content/base/src/nsDocument.cpp#1726 (名無しさん 2007-02-22 12:58:40 +00:00)

[160] /trunk/WebCore/dom/Document.cpp - WebKit - Trac (2007-02-22 21:57:49 +09:00 版) http://trac.webkit.org/projects/webkit/browser/trunk/WebCore/dom/Document.cpp#L1677 (名無しさん 2007-02-22 13:00:06 +00:00)

[171] Apache 2.2でWebサイトをパフォーマンスアップ!(2/3) − @IT (2007-07-27 22:41:47 +09:00 版) http://www.atmarkit.co.jp/flinux/special/apache22/apache02.html

mod_cachehttp-equiv を解釈するような説明がなされていますが、真偽はわかりません。

少なくても Apache 2.2 の文書にはそのような説明はありませんでした。

[52] http-equiv Considered Harmful: http-equiv 属性を使った meta 要素によって HTML 文書に HTTP 頭欄の元となる情報を用意しておくことは、 手軽であり、元々はそう悪い考えではありませんでした。 しかし、実際にはこの方法はほとんど成功しなかったどころか、 一部では誤った方向で使われています。 http-equiv は歴史的遺物であり、 使用するべきではありません

[53] とかいうことを書こうと思って、どうせもう書いている人がいるだろうとも思って検索してみたら、ありました。

Robots Mailing List Archive: Re: HEAD request [was Re: Server name in /robots.txt] http://sunhe.jinr.dubna.su/docs/httpd/robots/mailing-lists/robots/0329.html

こちらの文書は HTML 2.0 ができる当時のもので、 まだ http-equiv が正しく機能する望みがいくらかはあった時のものです。 ですからあまり深刻ではありません。

[54] 現代版 Considered Harmful の骨子:

[158] /trunk/WebCore/dom/Document.cpp - WebKit - Trac http://trac.webkit.org/projects/webkit/browser/trunk/WebCore/dom/Document.cpp#L1708 (名無しさん)

[168] スーパー懸賞サイト GetMoney! (2007-07-04 09:49:30 +09:00 版) http://dietnavi.com/pc/index.asp?id=11

<META http-equiv=Content-Type content="text/phpl; charset=EUC-JP">

(名無しさん)

[169] Amazon.co.jp: "お勧め18禁ゲーム2" (2007-07-04 10:01:51 +09:00 版) http://www.amazon.co.jp/%E3%81%8A%E5%8B%A7%E3%82%8118%E7%A6%81%E3%82%B2%E3%83%BC%E3%83%A0%EF%BC%92/lm/REOCLRMJTVBHU/ref=cm_lmt_dtpa_f_2_rdssss1/503-4659305-3951160

<meta http-equiv="Content-Type" content="text/html">

(名無しさん)

[170] みんプロ (2005-11-22 21:08:26 +09:00 版) http://profilelink.zmapple.com/manual/FAQ.html

<?xml version="1.0" encoding="utf-8"?><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html" /><style type="text/css">

(名無しさん)

[174] DEVELO VISUALIZATIONS:::Blog (2007-07-31 17:02:02 +09:00 版) http://www.develo.jp/blog/dv/atom.xml

URI からの想像に反して XHTML 1.0 ですが、 媒体型application/xml。 でありながら

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

[179] ウェブ魚拓 (2007-11-19 19:40:56 +09:00 版) http://megalodon.jp/

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja">
<head>
  <meta http-equiv="Content-Type:text/html; charset=UTF-8" />

[181] PragmaExtensions - WHATWG Wiki ( 版) http://wiki.whatwg.org/wiki/PragmaExtensions

[182] Voice Browser Call Control: CCXML Version 1.0 ( ( 版)) http://www.w3.org/TR/2011/REC-ccxml-20110705/#Meta

<meta http="content-type" content="text/html;charset=shift_jis">
<meta http="robots" content="noindex,nofollow">

[184] charset 引数もないので charset sniffing しないとシフトJISだとわかりません。

[186] Talk:PragmaExtensions - WHATWG Wiki ( ( 版)) https://wiki.whatwg.org/wiki/Talk:PragmaExtensions

[91] draft-ietf-html-i18n-01 - Internationalization of the Hypertext Markup Language ( 版) https://tools.ietf.org/html/draft-ietf-html-i18n-01

[92] draft-musella-html-metatag-00 - The META Tag of HTML ( 版) http://tools.ietf.org/html/draft-musella-html-metatag-00

[93] draft-ietf-html-spec-00 - The 'text/html' Media Type ( 版) https://tools.ietf.org/html/draft-ietf-html-spec-00

[94] Web Applications 1.0 r1186 more data for http-equiv ( 版) https://html5.org/r/1186

[95] ( 版) http://www.ieichiba.com/

<meta http-equiv="X-Wix-Renderer-Server" content="app200.vac.aws"/>

<meta http-equiv="X-Wix-Meta-Site-Id" content="fd498c38-4db3-4d5c-9913-676ad46e9911"/>

<meta http-equiv="X-Wix-Application-Instance-Id" content="1bfa6307-f7c2-4924-a02b-d4e096b5a59e"/>

<meta http-equiv="X-Wix-Published-Version" content="288"/>

[96] 18025 – Wiki documentation of Pragma directive requirements are unworkable as currently written () https://www.w3.org/Bugs/Public/show_bug.cgi?id=18025

[97] Do not allow http-equiv values curated via wiki by domenic · Pull Request #3279 · whatwg/html () https://github.com/whatwg/html/pull/3279

[98] Do not allow http-equiv values curated via wiki (domenic著, ) https://github.com/whatwg/html/commit/72d084b81fa94915518b9cf279afef87d835e88e

[99] Difference between revisions of "PragmaExtensions" - WHATWG Wiki () https://wiki.whatwg.org/index.php?title=PragmaExtensions&type=revision&diff=10238&oldid=9961

[100] Do not allow http-equiv values curated via wiki by domenic · Pull Request #3279 · whatwg/html () https://github.com/whatwg/html/pull/3279

[101] 18025 – Wiki documentation of Pragma directive requirements are unworkable as currently written () https://www.w3.org/Bugs/Public/show_bug.cgi?id=18025

[102] Make <meta http-equiv=set-cookie> into a no-op by annevk · Pull Request #3649 · whatwg/html () https://github.com/whatwg/html/pull/3649

[103] Editorial: lowercase content-security-policy <meta http-equiv> value (annevk著, ) https://github.com/whatwg/html/commit/e6a29247387e8f362654b280f72f746328667352

[104] Editorial: lowercase content-security-policy <meta http-equiv> value by annevk · Pull Request #3654 · whatwg/html () https://github.com/whatwg/html/pull/3654