Client Side State - HTTP Cookies

Client Side State - HTTP Cookies

[4] Cookie ははじめに Netscape Navigator で実装され、開発者向けに仕様案が公開されました。 Cookie は後に IETF で標準化されて RFC となっていましたが Netscape の仕様と互換性が無いためほとんど無視され、長らく Netscape の公開した仕様書 (と実装) が事実上の標準になっていました。 2011年になってようやく Netscape の仕様ベースの Cookie の定義 RFC 6265 が発行されています。

仕様書

[2]

Preliminary Specification - Use with caution (予備仕様—心して使うべし)

と書かれていましたが、この仕様が現在まで事実上の標準となっています。

BNF

Netscape の仕様を元に作成
 http-response /= Set-Cookie
 http-request /= Cookie

 Set-Cookie = "Set-Cookie:" set-cookie-content
 set-cookie-content = [FWS] cookie-pair
                      *([FWS] ";" [FWS] parameter) [FWS] [";"] [FWS]
 Cookie = "Cookie:" [FWS] cookie-pair
        *([FWS] ";" [FWS] cookie-pair) [FWS]
 parameter = expires-parameter / domain-parameter
           / path-parameter / secure-parameter
 
 cookie-pair = name "=" value
 expires-parameter = "expires=" cookie-date
 domain-parameter = "domain=" ["."] dot-atom
 path-parameter = "path=" abs_path
 secure-parameter = "secure"
 
 name = 1*cookie-char
 value = *cookie-char
 cookie-date = <Wdy, DD-Mon-YYYY HH:MM:SS GMT>
 abs_path = <RFC 2616 abs_path>
 
 cookie-char = <a sequence of characters excluding semi-colon, 
                comma and white space>

[6]

以上の例は Netscape の仕様から。日付の年は実際には4桁じゃないと いけないらしい。

メモ

[3] 日本語訳 <http://www.futomi.com/lecture/cookie/specification.html>

他にも訳があったけど Not found。