WEBブラウザでURLを解析する
WEBブラウザでは、ユーザが入力したURLで何をどうしたいのか解析し、それをWEBサーバに送ってもらうようにプロトコルスタックに依頼する、までを行います。
URLについて
よく目にしているURLの先頭には、httpと書かれていると思います。これは、httpプロトコルというものを使ってWEBサーバにアクセスするという意味で、他にもいろいろなプロトコルがあります。なので、先頭がhttp以外のURLも存在し、それぞれのプロトコルに応じたサーバにアクセスすることができます。そういった意味では、WEBブラウザというのは、いろいろなサーバにアクセスすることができるプラットフォームのようなものと考えることができます。
URLの解析(HTTPプロトコルの場合)
URLの先頭のプロトコルについて先ほど述べましたが、それ以降にはプロトコルへの具体的なリクエストが含まれています。
このリクエストを解析することがWEBブラウザの最初の役割になります。httpプロトコルの場合、URLは以下のように構成されます。
http: + // + webサーバ名 + / + ディレクトリ名 + / ... / + ファイル名
これによって、WEBブラウザは、httpプロトコルを用いて、指定したwebサーバに存在する、指定したパス(ディレクトリ/.../ファイル名)のファイルにアクセスするという要求であることを解析します。
WEBサーバの設定次第では、ファイル名は省略できる
HTTPメソッド
URLの解析によって、何をどうするかというリクエストのうち、「何を」の部分がわかりました。
「どうするか」の部分にあたるのが、HTTPメソッドになります。代表的なメソッドにGETメソッドとPOSTメソッドがあります。
GETメソッド
これは、普段私たちがブラウザでサイトを閲覧するときにリクエストとして送っているメソッドです。URLの解析でアクセスするファイルを読み出す処理を要求します。
POSTメソッド
ユーザがサイトの入力欄で入力した内容をリクエストを送る時に、リクエストに含めるメソッドです。
どうやってリクエストからHTTPメソッドを判断するのか
ここで、普段URLを入力するときに、GETメソッドなんて明示してないからどうやって解析するんだろう、と思ったかもしれません。HTTPリクエストをどう判断するかというと、リクエストの送り方で判断します。
URLを入力すること自体がGETメソッドとして判断されるということなのです。
リクエストメッセージ作成
ここまでで、入力したURLによって何をどうしたいのかがわかりました。
これを用いて、あらかじめ書き方の決まったリクエストメッセージを作成します。
次回
次回は、作成したリクエストメッセージをOSに依頼する処理を追っていきたいと思います。