民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS URIの最後のスラッシュ

<<   作成日時 : 2008/02/08 00:13   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 1 / トラックバック 0 / コメント 2

ずーっと以前、信頼のおける先輩に教えてもらったことに、若干の誤りがあったことに気付いた。それが、URIの最後につけるスラッシュの問題。たとえば、このブログのURIは「http://kzworks.at.webry.info/」となっている。が、最後のスラッシュを省略して「http://kzworks.at.webry.info」とやってもアクセスすることができる。
雑誌の広告や電車の中吊り広告を見ても、最後にスラッシュが付いていたりいなかったりする。
これが、たとえば、わたしのホームページ「http://www7a.biglobe.ne.jp/~kzworks/」のように、ホスト名の後ろにさらにパス名が付いている場合ならば、最後にスラッシュが付いているのが正しい。「~kzworks」はディレクトリ名であり、ファイル名ではない。ディレクトリ名であることを明示してやらないと、クライアント・ホスト間で余計な通信が発生してしまう。
問題は、私のブログのように、ホスト名の後ろにパス名が付いていない場合だ。この場合、余計な通信をしなくてもホストの「/」ディレクトリにアクセスしなければならないということがすぐに分かる。
かつての先輩には「http:」というスキーム名をつける場合は、そのスキームでアクセスする対象を明示するため最後にスラッシュをつけるのが正しいと教わった。そして、それに違いないと信じて今日まできた。
が、今日、ふとしたはずみで改めて調べなおしてみると RFC 3986(URIの一般的な書式)に、
http://example.com
http://example.com/
http://example.com:/
http://example.com:80/
の4つは同じだと書かれていた。
理由も細々と書いてある。

とりあえず、URIがホスト名で終わる場合は、最後にスラッシュをつけない形であっても、「正しい」ということらしい。
今まで「最後にスラッシュをつけろ」と偉そうに言ってきた自分が、少し恥ずかしかったりする。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 1
なるほど(納得、参考になった、ヘー)

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(2件)

内 容 ニックネーム/日時
RFC3986の
6.2.3. Scheme-Based Normalization
の項ですが、その4つのURIはequivalentだけれども、2番目のがnormalなので、全て2番目の形式にnormalization(正規化)される、と書かれています。ですから、ホスト名の末尾にスラッシュを付ける、というのは正規の(normal)の書式だというのは間違ってないです。
通りすがりのウェブマスター
2010/03/01 21:15
なるほど、つまるところ、何が正しくて何が正しくないかは「文脈による」ということですね(と、良い子ぶってみる)。
kazuyoshikakihara
2010/03/01 22:17

コメントする help

ニックネーム
本 文
URIの最後のスラッシュ 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる