新規記事投稿 フォロー記事投稿 記事のキャンセル
From: にあ <nir@mvg.biglobe.ne.jp>
Subject: "&"はquery stringではエンコードが必要?
Date: 1999/03/15 23:58:15
Reference: mesh.npc.2/00565

3月15日に、TADさんは書きました。

><img src="/~fwip3653/npc/npc.cgi?L=index.htm&amp;I=/npc/npc.idx&amp;C=FFFFFF,000000">
>
>HTMLの記述が上記のようになってますが、
>気の回しすぎか単なる間違い(誤解)ですね。(^^;;

えーと、Yasu.Fさんの「Webに関するいろいろ」のペーヂを読むと、"&"と言うのは、
生には使えなくて、"&amp;"と書かねばならない、となっているので、RFC 1738を
読み直してみたのですが、該当個所が見つかりませんでした。(^^;;

Reserved: の項を見ると、";"、"/"、"?"、":"、"@"、"=" と "&"の文字は
特別な意味を表わすために予約されるだろう(may be)となっており、予約された文字は
エンコードされねばならない、となっていますが、HTTPの項目を見ると、<searchpart>
("?"の後ろに現われる文字列)で予約されているのは、"/"、";"、"?" だけですね。
後ろの BNF の部分を見ても、

search = *[ uchar | ";" | ":" | "@" | "&" | "=" ]

となっていて、"&" は含まれていますし...


とは書いたんですが、"&" を使っちゃいかん! と言う話は、確かにあたしも
どこかで読んだ覚えがあります。(^^;; はて、何か別の規格からの制限だったかしら?

...あ、思い出した。もしかして、RFC 2396がこの辺も直しているのかな? と思って
見ると、query では、";"、"/"、"?"、":"、"@"、"&"、"="、"+"、","、"$" が
予約されているとなっていますね。と言うことは、query 中で "&" の役割が何か
(セパレータなのか否か?)にかかってくる訳ですが... それは何を見たら分かるのだろう。(^^;;