[5] Accept:
ヘッダーは、利用者エージェントが受け入れ可能な応答の
MIME型を指定するものです >>416。
[20] 内容折衝は利用者を混乱させるだけなので、使うべきではありません。
Webサーバーは、 Accept:
ヘッダーを無視するべきです。
[435] Accept:
ヘッダーを指定しなければ、
利用者エージェントはどんなMIME型でも受け入れることを表しています >>416。
[420] 欄値は、0個以上の値のリスト (#
) です >>416。
[421] それぞれの値は、媒体範囲、または媒体範囲のあとに
accept-params
を指定したものです >>416。
[422] 媒体範囲は、
MIME型か、MIME型のうち subtype が *
になったものか、
*/*
です。引数も指定できます。 >>416
[423] accept-params
は、
q
引数 (品質値)
および0個以上の引数です。
ここでの引数は、;
、名前、=
、値で構成されます。
ただし ;
の前後には OWS を使えます。
名前は字句で、値は字句または引用文字列です。
=
以下は省略できます。 >>416
[424] 媒体範囲に含まれるMIME型の引数、 accept-params
に含まれる q
引数、その後の引数は、構文としてはほとんど同じですが、
微妙な違いがあります。 q
引数の値は字句でなければなりません。
MIME型の引数の値と q
引数の値は省略できません。
MIME型の引数と、 Accept:
としての引数は、
q
引数の前後どちらかにあるかによって区別します。
[36]
API の versioning に濫用されることがあります。
[427] */*
は、すべてのMIME型を表します >>416。
[428] text/*
のような字句と /*
による指定は、 text/plain
や
text/html
など当該型に属するすべての部分型を表します。 >>416
[432] q
引数の構文と解釈については、
引数値の項を参照してください。
[433] q
より前にある引数は、MIME型に属するものとして扱われます。
MIME型としての互いの区別に用いられる他は、 Accept:
ヘッダーとしての特別な意味は持ちません。
[434] q
引数の後にある引数は、 Accept:
ヘッダーとしてのオプションを指定するものですが、現在使われている例はありません。
未知の引数をどう扱うかの規定もありません。
[6] Accept:
頭欄を受取った鯖は、
それに従って適当な表現を送ることができるかどうかを調べ、
可能であればそれで応答します。
[436] 起源鯖は、 Accept:
ヘッダーに利用できる表現の
MIME型がない場合は、 406
を送信することもできますし、
内容折衝の対象でない場合のように無視して処理しても構いません >>416。
[17] サーバーによっては、特定の Accept:
が指定されていないと 406
応答を返すことがあります。
例えば JSON と XML を受け付ける Web API がどちらかを選択するために本ヘッダーを使うことがあります。
[10] Accept-Charset:
も参照。
[38] A Guide to the Internet Connection Servers - SG244805.PDF, , http://ps-2.kev009.com/rs6000/redbook-cd/SG244805.PDF#page=58
[39] >>38 この時代の IBM のクライアントは1ヘッダー1MIME型で
Accept:
ヘッダーをずらーっといくつも並べていたらしい。
[40] HTTP Client Profile Proposal (rough draft II), , https://web.archive.org/web/19991125142429/http://www.bsdi.com/HTTP:TNG/MIME-ClientProfile.html
[37] HTTP Client Profile Proposal (rough draft II), , https://web.archive.org/web/19991125142429/http://www.bsdi.com/HTTP:TNG/MIME-ClientProfile.html
関連: WWWWW
[4]
XML の要素の内容として入れることができる媒体型を
XML Schema 定義文書で記述するための
属性なるものがあります。この値は RFC 2616
の xmlmime:expectedContentTypes
Accept:
頭欄の欄本体と同じです
(ただし使用できる文字の範囲は US-ASCII に限定されています)。
Describing Media Content of Binary Data in XML http://www.w3.org/TR/2005/NOTE-xml-media-types-20050504/#expectedContentTypes
[417] HTML の input
要素の accept
属性は Accept:
と似たものとして (曖昧に) 定義されていましたが、
現在は HTML Standard により明確に構文と処理モデルが定義されているため、
類似度は低くなりました。
[418] XHTML2 はリンクの type
属性 (相当)
を (HTML のようなヒントではなく) Accept:
に設定するべき値として使うことを求めていましたが、 XHTML2
全体が支持を集められず、この動作も実装されることはありませんでした。
例:
Accept:
要求頭欄は、ひとつの HTTP 要求メッセージ中に任意個 (零個以上) 入れることができます。複数個存在する場合には、一般の HTTP の頭欄の取扱いの規則により、すべてを読点分離でひとまとめにしたものと等価として扱います。
例:
Accept: text/plain Accept: text/html
は、
Accept: text/plain,text/html
と等価です。
[7]
>>2 Apache なんかは q
引数が同順位だと前ほど優先するようなので、
WinIE 6 がこのような Accept:
欄を送ってくることを利用して、
通常の WWWブラウザ向けの高品質画像を
PNG (image/png
) で、 WinIE 向けの低品質画像を
GIF で送り返すような技が使えます。
(都合がいいことに他の主要 WWWブラウザは GIF よりも PNG を優先させてくれます。)
(名無しさん)
[8]
Accept
欄の構文解析を一々するのは面倒なので、適当な正規表現の一致で済ませたくなりますが、
できるだけ正確に検査した方が無難です。
特に注意しないといけないのは、q=0
の場合があることです。Accept
欄にある媒体型があったとしても、それが本当に受け入れられるものかどうかはq
をみないとわかりません。
(名無しさん)
[9]
Bug 309438 – Accept: header too long on account of text types (2007-02-26 08:33:13 +09:00
版) https://bugzilla.mozilla.org/show_bug.cgi?id=309438
[407] IRC logs: freenode / #whatwg / 20110416 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20110416#l-39
[408] [whatwg] RWD Heaven: if browsers reported device capabilities in a request header ( ( 版)) http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-February/034642.html
[409] IRC logs: freenode / #whatwg / 20120206 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20120206
[410] Request Headers in the HTTP protocol ( ( 版)) http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3
[411] RFC 6787 - Media Resource Control Protocol Version 2 (MRCPv2) ( ( 版)) http://tools.ietf.org/html/rfc6787#section-6.2.2
[412] [whatwg] microdata questions ( ( 版)) http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2014-April/084610.html
[413] HTTP - WHATWG Wiki ( ( 版)) http://wiki.whatwg.org/wiki/HTTP#Accept_header
[414] RFC 7252 - The Constrained Application Protocol (CoAP) ( ( 版)) http://tools.ietf.org/html/rfc7252#section-5.10.4
[441] OData Version 4.0 Part 1: Protocol Plus Errata 01 ( ( 版)) http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html#_Toc393958667
[442] OData Version 4.0 Part 1: Protocol Plus Errata 01 ( ( 版)) http://docs.oasis-open.org/odata/odata/v4.0/odata-v4.0-part1-protocol.html#_Toc370374804
[443] Request Headers in the HTTP protocol ( ( 版)) http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3
[444] HTTP::Negotiate - search.cpan.org ( ( 版)) http://search.cpan.org/~gaas/HTTP-Negotiate-6.01/lib/HTTP/Negotiate.pm#Accept
[445] HTTP::Negotiate - search.cpan.org ( ( 版)) http://search.cpan.org/~gaas/HTTP-Negotiate-6.01/lib/HTTP/Negotiate.pm#Accept
[446] HTTP::Negotiate - search.cpan.org ( ( 版)) http://search.cpan.org/~gaas/HTTP-Negotiate-6.01/lib/HTTP/Negotiate.pm#Accept
[12] Set Accept/Accept-Language in Fetch per #43 · whatwg/fetch@d095fdc ( 版) https://github.com/whatwg/fetch/commit/d095fdcf284cd36e9ddee526ad6faa6fda4ecc00
[13] Accept/Accept-Language handling is now done in Fetch · whatwg/xhr@7e8e1d8 ( 版) https://github.com/whatwg/xhr/commit/7e8e1d887c2b16ba4665c849e7034a45ab826ec3
[14] Fix #142: always give `Accept` a default value · whatwg/fetch@ceb16ef ( 版) https://github.com/whatwg/fetch/commit/ceb16efa37f3888323b47a6529124c4fcefa5e33
[19] Clarify requirements around Accept and Accept-Language · whatwg/fetch@69eda57 ( 版) https://github.com/whatwg/fetch/commit/69eda57af99fd5762162f24739da1895bd2130f4
[21] 1249474 – Accept header sent for images prevents w3.org from serving us SVG images in W3C's style sheet ( 版) https://bugzilla.mozilla.org/show_bug.cgi?id=1249474
[27] Fold request type into destination (annevk著, ) https://github.com/whatwg/fetch/commit/d7052e2b6d24d04caa2cea8ef664923ecdb1e35c
[28] Release Notes for Safari Technology Preview 46 | WebKit () https://webkit.org/blog/8042/release-notes-for-safari-technology-preview-46/
[29] Listing headers safe only for certain values is a bad idea · Issue #313 · whatwg/fetch () https://github.com/whatwg/fetch/issues/313
[30] Strengthen requirements on CORS-safelisted request-headers (annevk著, ) https://github.com/whatwg/fetch/commit/9288c8f85c809a0ac371be6843ad2cf4046ee35b
[31] Be strict on request's Content-Type (annevk著, ) https://github.com/whatwg/fetch/commit/e06e2613f9eef720d0df8640be793efca2af89bc
[32]
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
(Chrome)
[33] Add Accept: */* to CORS-preflight request's headers (perryjiang著, ) https://github.com/whatwg/fetch/commit/412723bae95dcc1541e6aad13b8bf42d8afcfe93
[34] specify default accept header on cors preflight · Issue #922 · whatwg/fetch () https://github.com/whatwg/fetch/issues/922
[35] Add Accept: */* to CORS-preflight requests' headers by perryjiang · Pull Request #941 · whatwg/fetch () https://github.com/whatwg/fetch/pull/941
q
引数以外にAccept:
としての引数は存在しておらず、今後追加されることがあるのかも疑問です。 歴史的にはいくつか存在しており、古い仕様書や古くからある実装が対応していることがあります。