URLの "正しい" 書き方

 URLを紹介する場合や、A 要素(*1)などでリンクする場合に、index.html などの「トップページのファイル名」を省略することがあるが、その場合URLはディレクトリ名で終わるのだから、最後はスラッシュ(/)で終わるのが正しい書き方である。
 例えば当ALHのトップページへのリンクは、
  http://gambler.m78.com/yoshiki/alh/index.html
 となるのだが、これは
  http://gambler.m78.com/yoshiki/alh/
 と書いても構わない。

 ディレクトリ名だけしか示さないのに、どうして「index.html」が出てくるのかというと、実は次のような処理がホスト内でなされているからである。

  1. ホストがブラウザから、「ディレクトリ」の要求を受け取る。
  2. ホストに設定されているデフォルトページの設定に従って、デフォルトページのファイルを探し、それがあるならそのファイルをブラウザに渡す。
  3. もしも該当するファイルがなければ、「ディレクトリの属性」及びホストの「ディレクトリ一覧機能」を調べ、「読み込み可、かつ、ディレクトリ一覧機能 on」であるなら、ディレクトリ一覧(ファイルのリスト)をブラウザに渡す。
  4. もしも属性が「読み込み不可」であるか、あるいはディレクトリ一覧機能が off であるか、その両方である場合、ホストはブラウザに「404 File not found」のエラーを渡す。

 「デフォルトページ」が index.html であるとは限らないので、ページの作成者は、事前にホストの仕様をしっかり調べておかなくてはならない。もしもホストの設定が index.htm であるにもかかわらず、index.html を置いて、ディレクトリ名までしか配布しなければ、ディレクトリ一覧が出てくるだろうし、上記の4番目に該当するのであれば、辿り着けるユーザーはまずいないだろう。自分のページをちゃんと見てもらいたいのであるなら、このような設定はしっかりチェックしておくか、あるいは配布時(及びリンク時)にはちゃんとファイル名まで明記するように心懸けるのが、Web制作者の義務である。
 また、URLを
  http://gambler.m78.com/yoshiki/alh
 のように書く者が(個人の開設者に止まらず、企業のページなどでも)多く見受けられるのだが、これは正しい書式ではない。現行のIE4やNC4などでは、確かに正しく目的のページを開けるのだが、これはブラウザの以下の仕様によるものである。

  1. http://gambler.m78.com/yoshiki/alh をホストに要求する。
  2. 最後がスラッシュで終わっていないため、ホストは alh を「ファイル名」と解釈し、/yoshiki/ の中の alh と云うファイルを探す。
  3. ファイルが見つからないので、ホストはブラウザに「404 File not found」のエラーを返す。
  4. ブラウザは最後にスラッシュを付加して、http://gambler.m78.com/yoshiki/alh/ をホストに改めて要求する。

 その後の流れは、最初のリストの通りである。余計なやり取りがブラウザ−ホスト間に生じてしまっていることがおわかりになるだろうか? 些細なことであるように見えるが、例えば友人のページなどへのリンクでこのような書式をしてしまうと、あなたのページからその友人のページへ行く人は皆「この不要なやり取り」をしなければならなくなってしまうのである。1人で1往復の不要なやり取りをするのだから、10人居れば10往復、100人で100往復の不要な負荷を友人のホストに掛けることになるのだ。
 こうしたことは案外に知られていないので、その友人のホストへのリンクの内、1割がこうしたことをしているとすると、とんでもない量の無駄な情報が回線を行ったり来たりしていることになる。当然ホストは重くなり、友人をはじめ、そのホストにページを設置する全ての制作者に、多大な迷惑を掛けてしまうことになるのだ。
 たった一文字を付けるか否かで、事態は大きく変わってしまう。――「自分一人が気をつけたところで、たいして効果は変わらないだろう」などと思われるかもしれないが、こうしたことは一人一人が先ず個人レベルで気をつけて行くことが肝要であり、友人・知人などにも、機会があればしっかり教えてあげればよいのである。
 企業のページなどでこうした記述をしているURLをみるたびに、「自分の首を締めているなぁ」と、私は苦笑してしまう。自分のページをより多くの人に見てもらいたいのであるなら、先ずはこうした些細なことからしっかりやっていくようにしなければいけないし、他人のページへのリンクであるならなおさら、「最低限のマナー」は守るようにするのが礼儀というものであろう。

(*1) 一般に「タグ」と云われているのは、< > で括られた文字列のことであり、外見的な呼び名である。それに対して「要素」(または「エレメント」)は、機能までをもひっくるめた呼び名である。
 例えば、「<A> タグ」と云えば、それは単純に「<A>」と云う文字列をしか指さない。しかし「A 要素」と云えば、これは「(</A> 迄をも含めた)リンク等の機能を持った命令文」と云う意味になる。また、「<TABLE> タグ」と云えばそれは「<TABLE>」と云う文字列でしかないが、「TABLT 要素」と云えば、それは「<TABLE>〜</TABLE>」と云った、明確な機能を持った一括りを指すことになる。
 これは HTML4.01 の仕様書にも明記されている正式な用語・用法であるので、当サイトでは、それに従って使用している。