Webを利用していると,不思議な現象に遭遇する。「%」が入った変なURLが出たり,末尾が「/」だけで終わったり——。こうした不思議な現象をしくみから解明していこう。


アドレス欄に「%」などが入った長いURLが
表示されたりします。あれはなんでしょうか

 これは,検索サイトで検索結果を表示するときによく起こる現象です。

 例えば,Yahoo!(ヤフー)の検索ページで,「ABC」というキーワードを入力して検索ボタンを押します。するとWebブラウザのアドレス欄には,「http://search.yahoo.co.jp/bin/search?p=ABC」とURLが表示されます。この中のsearchは,Webサーバーで動く検索プログラムです。そして「?」が,このプログラムに受け渡す引数との区切りを示しています。つまり,Webブラウザは,検索キーワードを埋め込んだURLを指定して,検索結果ページを表示しているのです。

 さて,検索キーワードをアルファベットだけの「ABC」の代わりに,漢字の入った「日経NETWORK」にしてみましょう。

 すると,URLの後半部分は,「日経NETWORK」の代わりに,「%C6 %FC%B7%D0NETWORK」になります(図3-1)。これがURLに含まれる「%」の正体です。

 「%」は漢字などのテキストを文字コード*に変換したことを表します。「日経」を16進表記の文字コード(シフトJIS(ジス))で表すと,C6FCB7D0Hとなり,1バイト分のコード(2ケタ分)の頭に「%」が付いているのです。

図3-1 「%」はURIに埋め込まれた日本語を示している
検索ページなどで日本語のデータをWebサーバーに伝えるとき,そのデータをHTTPリクエストのURIのなかに埋め込んで送るケースがある。日本語のような2バイト文字は,そのままではURIに入れられないので,16進のコードに直し,「%」で区切る。