- [1] [CODE(ABNF)[[DFN[path]] = [[fsegment]] *( "/" [[segment]] ) ;; [[RFC 1808]]]] - [5] [CODE(ABNF)[[DFN[path]] := [ abs_path / opaque_part ] ;; [[RFC 2396]]]] [4] RFC 1808 の [CODE(ABNF)[path]] は、 2396 では [CODE(ABNF)[[[path_segments]]]] に当たります。 [2] >>1 [CODE(ABNF)[[DFN[fsegment]] := 1*[[pchar]]]], [CODE(ABNF)[[DFN[segment]] := *pchar]] です。 最初の部分が必ず1文字ないといけないのは、 空を許すとすると [CODE(ABNF)[[[abs_path]]]] で [SAMP(URI)[//foo]] のようなものが認められることなり、 [CODE(ABNF)[[[net_path]]]] と区別できなくなってしまうからでしょう。 [3] [[RFC 2396]] では、 [CODE[]] は [CODE(ABNF)[[[abs_path]]]] 又は [CODE(ABNF)[[[opaque_part]]]] のことを指します。これらは排他的なので曖昧なく区別できます。 (RFC 2396 3.) [6] 2396 によれば、 path segment では [CODE(regex)[ [/;=?] ]] が[[予約]]されています。 [CODE(URI)[=]] は[[引数]]で使われるのですが、 最初の引数のセミコロンより前では意味を持たないはずです。 それでも予約されています。 あ、よくみると、引数でも [CODE(URI)[=]] は定義されていませんね。 つまり、引数だろうがなかろうが、経路 segment 内では [CODE(URI)[=]] と [CODE(URI)[%3D]] は必ずしも等価ではなく、 うかつに (un)escape してはいけないということです。 [7] [CITE[The Path URN Specification]] ([CODE[1999-03-16 02:27:52 +09:00]] 版) ([[名無しさん]]) [8] * [CODE(HTTP)@en[path]] 引数 (HTTP Cookie) [9] [[HTML5]] の [CODE(JS)@en[[[document.cookie]]]] [[属性]]に関する節の注記 ([[参考]]) には、次のような記述があります。 - [CODE(JS)@en[[[document.cookie]]]] [[属性]]は[[フレーム]]を超えてアクセス可能である - [[クッキー]]の[[経路]]制限は[[クッキー]]が[[Webサイト]]のどの部分に送られるかの管理を助ける道具に過ぎない - [[クッキー]]の[[経路]]制限は[[保安性]]のための機能ではない ;; [10] [CITE@ja[Javascriptのdocument.cookieのpath]] ([TIME[2009-02-01 19:38:32 +09:00]] 版) >document.cookieで四苦八苦しておりまして、Safari、Firefox、Chromeではちゃんと動くのにIE6とIE7では動かないという事態に直面した際の話です。 > 端的に申しますとdocument.cookieのpathはIEに関してはフォルダ単位でしか動きません。 そのほかのモダンブラウザではちゃんと動きます。ほとほとIEには困ったものです。 > なので、location.pathnameを直接pathに通すとcookieが書き込まれないという事態に陥る