<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cookie</anchor> ははじめに <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape Navigator</anchor> で実装され、開発者向けに仕様案が公開されました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cookie</anchor> は後に <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IETF</anchor> で標準化されて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor> となっていましたが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape</anchor>
の仕様と互換性が無いためほとんど無視され、長らく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape</anchor> の公開した仕様書 (と実装)
が事実上の標準になっていました。 2011年になってようやく <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Netscape</anchor> の仕様ベースの <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cookie</anchor>
の定義 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 6265</anchor> が発行されています。</p><section><h1>仕様書</h1><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <cite>Client Side State - HTTP Cookies</cite>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://web.archive.org/web/19961125090609/http://www2.netscape.com/newsref/std/cookie_spec.html" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://web.archive.org/web/19961125090609/http://www2.netscape.com/newsref/std/cookie_spec.html</anchor-external></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> </p><blockquote><p>Preliminary Specification - Use with caution <ins>(予備仕様—心して使うべし)</ins></p></blockquote><p>と書かれていましたが、この仕様が現在まで事実上の標準となっています。</p></section><section><h1>BNF</h1><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">Netscape の仕様を元に作成</comment-p><pre class="ABNF code"> http-response /= Set-Cookie
 http-request /= Cookie

 Set-Cookie = &quot;Set-Cookie:&quot; set-cookie-content
 set-cookie-content = [FWS] cookie-pair
                      *([FWS] &quot;;&quot; [FWS] parameter) [FWS] [&quot;;&quot;] [FWS]
 Cookie = &quot;Cookie:&quot; [FWS] cookie-pair
        *([FWS] &quot;;&quot; [FWS] cookie-pair) [FWS]
 parameter = expires-parameter / domain-parameter
           / path-parameter / secure-parameter
 
 cookie-pair = name &quot;=&quot; value
 expires-parameter = &quot;expires=&quot; cookie-date
 domain-parameter = &quot;domain=&quot; [&quot;.&quot;] dot-atom
 path-parameter = &quot;path=&quot; abs_path
 secure-parameter = &quot;secure&quot;
 
 name = 1*cookie-char
 value = *cookie-char
 cookie-date = &lt;Wdy, DD-Mon-YYYY HH:MM:SS GMT&gt;
 abs_path = &lt;RFC 2616 abs_path&gt;
 
 cookie-char = &lt;a sequence of characters excluding semi-colon, 
                comma and white space&gt;</pre></section><section><h1>鯖からクライアントへの Cookie の設定</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cookie</anchor> を新規または上書きで設定、あるいは削除するには <code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Set-Cookie:</anchor></code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応答頭欄</anchor>を使います。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <ul><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Set-Cookie:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頭欄</anchor><ul><li><code xml:lang="en"><var>NAME</var>=<var>VALUE</var></code></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Expires</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Domain</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Path</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor></li><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Secure</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor></li></ul></li></ul></p></section><section><h1>クライアントから鯖への Cookie の通知</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <ul><li><code class="HTTP" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cookie:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頭欄</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Cookieのサイズ制限</anchor></li></ul></p></section><section><h1>例</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <ul><li>Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT</li><li>Cookie: CUSTOMER=WILE_E_COYOTE</li><li>Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/</li><li>Cookie: CUSTOMER=WILE_E_COYOTE; PART_NUMBER=ROCKET_LAUNCHER_0001</li></ul></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">以上の例は Netscape の仕様から。日付の年は実際には4桁じゃないと
いけないらしい。</comment-p></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 
日本語訳 <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.futomi.com/lecture/cookie/specification.html" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI">http://www.futomi.com/lecture/cookie/specification.html</anchor-external></p><p>他にも訳があったけど Not found。</p></section></body></html>