w3m や w3mmee で、クッキーを使ったウェブアプリケーションの実験をしていてちょっとはまりました。
http://www.example.com/hoge/
で発行した Cookie に path 属性を指定しなかったとき、w3m や w3mmee では path が '/hoge' として記録されるので、例えば
http://www.example.com/hoge2/
に対してもその Cookie を渡そうとしていました (前方一致でマッチさせるから)。
一方 Mozilla では、同様の時に path が '/hoge/' として記録されるので、この問題はおきません。
RFC2109 では、User-Agent 側の役割として
Path Defaults to the path of the request URL that generated the Set-Cookie response, up to, but not including, the right-most /.
とありますが、この 'the path of the request URL' というのが '/' で終るべきなのかどうなのかよくわかりません。ただ、Example の中で
1. User Agent -> Server POST /acme/login HTTP/1.1 [form data] User identifies self via a form. 2. Server -> User Agent HTTP/1.1 200 OK Set-Cookie: Customer="WILE_E_COYOTE"; Version="1"; Path="/acme" Cookie reflects user's identity.
と書いてあるくらいなので、上記のような問題が起きるのは本来当り前で、Moailla の実装が気を効かせてくれているだけなのでしょうか?
Mozillaの実装でないと困ったことになることが多いですよね。rfc2396のpathの定義は"/"で終わる事にになっていないのでw3mの方が正しいのかも知れませんが...
(mixiって不精な私にはRSSリーダのように使えて便利ですね。
http://wp.netscape.com/newsref/std/cookie_spec.htmlには「The path "/foo" would match "/foobar" and "/foo/bar.html".」とあります。