[1] [[HTTP]] の [DFN[[CODE(HTTP)@en[[[Cookie:]]]] [[要求頭欄]]]]は、[[Cookie]] を[[鯖]]に送信するためのものです。 * 仕様書 - [2] [[Netscape Cookie]]: [CITE[Client Side State - HTTP Cookies]] * 処理モデル [4] [[HTTP]] [[要求]]を構築する際に、[[要求URL]] と[[利用者エージェント]]が保持している [[Cookie]] を比較し、[[一致]]するものであれば [CODE(HTTP)@en[[[Cookie:]]]] [[要求頭欄]]に入れます。 [CODE(HTTP)@en[[[Cookie:]]]] [[欄]]には [[Cookie]] の名前と値の組を [PRE(HTTP example code)[ Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ... ]PRE] のように並べて記述します。 [SRC[>>2]] [7] 同じ名前の値は、[CODE(HTTP)@en[[[Domain]]]] や [CODE(HTTP)@en[[[Path]]]] が同じなら設定時に古いものが上書きされますが、 違っていれば両方共残ります。その場合には [CODE(HTTP)@en[[[Cookie:]]]] [[頭欄]]にも両方共含められます。 [SRC[>>2]] ** 順序 [9] より具体的な [CODE(HTTP)@en[[[Path]]]] の [[Cookie]] はより一般的な [CODE(HTTP)@en[[[Path]]]] の [[Cookie]] よりも先にくるべきです。例えば [CODE(HTTP)@en[a=1; path=/foo]] と [CODE(HTTP)@en[b=2; path=/foo/bar]] があれば、 [CODE(HTTP)@en[b=2; a=1]] のように送るべきです。 [SRC[>>2]] [8] 同じ [CODE(HTTP)@en[[[Path]]]] の時の名前と値の組の順序は明確に規定されていません。 * 複数の頭欄 [5] [CODE(HTTP)@en[[[Cookie:]]]] [[要求頭欄]]が複数あっても良いのかどうかは仕様上明確になっていません。 * 仕様書から [3] > When requesting a URL from an HTTP server, the browser will match the URL against all cookies and if any of them match, a line containing the name/value pairs of all matching cookies will be included in the HTTP request. Here is the format of that line: > Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 ... ;; [SRC[>>2]] * 関連 [6] [[Cookie]] を設定する [CODE(HTTP)@en[[[Set-Cookie:]]]] [[頭欄]]と同じように[[名前]]と値の組を並べる形式ではありますが、 [CODE(HTTP)@en[[[Set-Cookie:]]]] は1つの名前と値の組を設定するのに対し、 [CODE(HTTP)@en[[[Cookie:]]]] は複数の名前と値の組を1つにまとめて記述できます。