URLとHTTPリクエストメッセージ作成

URLを解読するブラウザ

 

ブラウザにてURLを入力

URL(Uniform Resource Locator)とは”http:~”で始まるアドレスのことです。”https:~”や”mailto~”、そのほかにも”ftp:”や”file:”で始まるものなど様々なものがあります。

様々なURLが用意されていますが、ブラウザの機能はクライアントがWebサーバーにアクセスするための目的だけではありません。ファイルをダウンロードやアップロードするためのFTPクライアント機能やメールのクライアント機能などもあります。ブラウザはそれらの複合的な機能の中のどれを使用するかを判断してデータにアクセスするので、用途に応じた様々な種類のURLを用意しています。

URLの書き方はアクセス先によって異なってきます。WebサーバーやFTPサーバーにアクセスする場合は、サーバーのドメイン名やアクセスするファイルのパス名などをURLの中に埋め込みます。また、メールの場合は送信相手のメール・アドレスをURLの中に埋め込む。といった具合になります。また、必要に応じて、ユーザー名やパスワード、サーバー側のポート番号などを描くこともあります。

ブラウザはまず最初にURLを解読する

ブラウザは、Webサーバーに送るリクエストのメッセージを作成するために、このURLを解読します。URLのフォーマットはプロトコルによって違うので、Webサーバーを例にとって説明していきます。

HTTPの仕様の通りに考えれば、URLはいくつかの要素を並べたものということになります。上図より、まず(a)のように構成要素をバラバラに分解します。(b)のURLの要素を分解したものが(c)になります。その分解したそれぞれの要素の並び方を調べることによって、URLの意味を理解することができます。

例えば、分解結果の(c)を見てみると、Webサーバーの名前を表す場所は「www.rahakatu.com」という名前があり、ファイルのパス名を表す部分はその次に「/document/index.html」という文字列があります。つまり、(b)のURLは「www.rahakatu.com」という名前のWebサーバー上にある「/document/index.html」というパスを表す文字列の中の/document/~というディレクトリ(場所)の下にある「index.html」という名前のファイルにアクセスする。という意味を表しています。

ファイル名を省略した場合
  • http://www.yuri.com/index/

例えばURLの末尾が「/」で終わっている場合。末尾が「/」で終わっている場合には/index/の後には何もないわけではなく、ファイルが存在していて、ファイル名を書かずに省略しているということです。これはURLのルールでファイル名は省略してもよいということになっています。これは、ファイル名を省略したときのためにあらかじめファイル名をサーバ側に設定しておくという場合に適応されるもので、その省略したファイル名を例えば「index.html」と設定したとすると、上記のURLからは、「~/index/index.html」と続いて「index」ディレクトリ(フォルダ名)の下にある「index.html」という名前のファイルにアクセスするということを意味しています。

  • http://www.yuri.com/index

また上記URLのようにindexのあとの「/」がない場合。末尾の「index」がファイル名かディレクトリ(フォルダ名)であるかで意味合いが変わってきます。indexがファイル名の場合はそのまま「index」というファイルを指し示しているはずなのですが、ファイルの場合には通常拡張子がつきます。なので、この「index」をファイル名と判断することは困難です。この場合indexはディレクトリ(フォルダ名)であると判断して、そのディレクトリ(フォルダ名)の中にサーバーで設定したファイル(index.htmlなど)にアクセスするという判断をします。

このことから、サーバーの設定によってURL末尾の「/」が省略された場合でもその末尾に記述されているファイル名やディレクトリ(フォルダ名)またはそのサーバーの設定からURLが指し示すファイルの位置を判断することができます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です