このページの本文へ

前へ 1 2 3 次へ

WWW完全制覇第2回

サーバを指定するURLの仕組み

  • この記事をはてなブックマークに追加
  • 本文印刷

WWWの基本は、Webサーバとブラウザとの通信である。WebブラウザはどのようにしてWebサーバと通信を始めるのだろうか。また、Webブラウザはどのような機能を持つのか。

リソースを示すURL

 URL(Uniform Resource Locator)は、Webサーバなどで公開されているリソース(HTMLや画像など)の場所を示す値である。複数の情報が組み合わさって構成されており、利用するプロトコルや接続先サーバのホスト名・ポート番号、目的のデータのサーバ内での場所などを、一括して指定できる(図1)。

図1 WebブラウザとWebサーバを結ぶURLの構成

WebのアクセスはこのURLをWebブラウザに入力することから始まる。もう少し丁寧に見ていくと、以下のような流れとなる。

  1. ユーザーがWebブラウザにURLを入力する(図1の(1))
  2. URLのオーソリティから接続先のホスト名とポート番号を抜き出し、目的のサーバにTCPでコネクションを張り、スキームで指定したアプリケーションのプロトコル(この場合はHTTP)で通信を開始する(図1の(2))
  3. パス部分をWebサーバに送り、表示したいWebページのデータの送信を要求する(図1の(3))

 Webサーバへの送信要求の手法やその後の流れは以降で解説するとして、ここではURLについて見てみよう。まず、URLの先頭にあるスキームだが、これは利用するアプリケーションを指定するものだ。http以外にも、ftpやtelnet、mailtoなどスキームにはさまざまな種類がある。httpがプロトコル名でもあることから勘違いしやすいが、スキームはプロトコルではなく、あくまでアプリケーションを指定するものだ。

 また、図1のURLでは、オーソリティでポート番号を指定しているが、ふだん目にするのはポート番号が省略された形式だろう。ポート番号を指定しない場合、WWWで標準的に使うポート80番が自動的に使われる。図1でいえば、「http://www.example.com」と省略しても、同じホストのポート80番を指定したことになる。

 URLの書式はRFC3986で定められおり、図1以外の情報を指定することもできる。たとえば、認証が必要なWebサイトにアクセスする場合、オーソリティにユーザーIDとパスワードを記述することが可能だ(図2)。

図2 ユーザーIDとパスワードが入ったURL

 ほかには、Googleで検索した際に、図3のような長いURLを見たことがある人も多いだろう。「?」の後半にあるさまざまな文字が埋め込まれたパートは「クエリ(Query)」だ。クエリとは「疑問」という意味で、データベースに対する検索要求の命令などもクエリと呼ぶ。図3のURLのクエリ部分はGoogleの検索エンジンに対する検索命令である。そのため、検索キーワードである「NETWORK MAGAZINE」がクエリに含まれていることがわかるだろう。つまりこのURLは、「NETWORK MAGAZINE」というキーワードで検索せよとGoogleの検索エンジンに命令をしているのだ。

図3 検索キーワードが埋め込まれた長いURL

リンクで使われる相対URL

 ユーザーが直接目にする機会は少ないが、URLには「images/logo.jpg」といったパスから始まる表記もある。スキームやオーソリティが指定される図1の形式を「絶対URL」と呼ぶのに対し、パスから始まるURL表記を「相対URL」と呼ぶ。

 相対URLは、Webページに張り込まれた画像の場所を示す際によく使われ、WebページのURLを基準点とした相対的な場所を示す。たとえば、図1のURLで示すWebページの画像ファイルが「images/logo.jpg」と相対URLで示されていた場合、これを絶対URLにすると「http://www.example.com:80/ascii/nmag/images/logo.jpg」となる。

 相対URLは、Webサーバのホスト名が変更されたとしても、記述を修正しする必要がないメリットがある。図1のWebサーバのホスト名が「www2.example.com」と変わった場合、絶対URLで記述されたリンクはすべて修正しなければならない。しかし、相対URLで記述していれば、ベースURLの変更に追従して、リンク先が自動的に「http://www2.example.com:80/ascii/nmag/images/logo.jpg」になるわけだ。

 なお、URLに似た用語として、「URI(Uniform Resource Locator)」を見かけたり、耳にしたことのある人は多いだろう。URLはURIの一種であり、URIのほうが幅広い意味を持つ。WWWに関する技術の標準化を行なっている「World Wide Web Consortium(W3C)」や前述のRFC3986などでは、技術的な仕様書や関連文書を書く際には、URLではなくURIとすべきだとしている。

(次ページ、「ページを表示するブラウザの仕組み」に続く)


 

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事
ピックアップ