HTTPの基本

HTTPの基本

URLを解読することによって、どの場所にアクセスするのかが分かります。その次にブラウザはHTTPプロトコルを使用してWebサーバーにアクセスします。

HTTPプロトコルはクライアントとサーバーがやり取りするメッセージの内容や手順を定めたものです。そのメッセージをやり取りするときにURIを用います。

URI(Uniform Resource identifier)とは

クライアントからサーバーに向けてリクエストメッセージを送るとき、そのメッセージの中には「何を」「どうして」欲しいのかが記述されており、この「何を」に相当する部分をURIといいます。具体的には下記の通りです。

  • そのページのデータを格納したファイルの名前
  • CGIプログラムのファイル名:Webサーバー・ソフトからプログラムを呼び出すときのルールを定めたもので、そのルールに則って動作するプログラムをCGIプログラムという。
  • http:~で始まるURLなど

この「何を」は様々なデータへのアクセス先を記述しているのであり、そうしたアクセス先を総称したものをURIと呼びます。

次に「どうして」に相当するものを「メソッド」といいます。このメソッドはWebサーバーにどのような動作をして欲しいのかを伝える役割をします。具体的には下記の通りです。

  • URIで示したデータを読み込んで欲しい
  • クライアント側で入力したデータをURIで示したプログラムに渡して欲しいなど
HTTPの主要なメソッド

表1−1:主要なメソッドを表にすると次のようになります。(HTTPのバージョンは1.1以上)

メソッド 役割
GET URIで指定した情報を取り出す。ファイルの場合はそのファイルの中身を送り返す。CGIプログラムの場合には、プログラムのデータをそのまま送り返す。
POST クライアントからサーバーにデータを送信する。特にブラウザのフォームに入力したデータを送信する場合に使う。
HEAD GETとほぼ同じであるが、HTTPのメッセージ・ヘッダーを送り返すだけで、データの中身は返さない。ファイルの最終更新日時などの属性を調べるときに使う。
OPTIONS 通信オプションを通知したりするときに使う。
PUT URIで指定したサーバー上のファイルを置き換える。URIで指定したファイルが存在しない場合は新たにファイルを作成する。
DELETE URIで指定したサーバー上のファイルを削除する
TRACE サーバー側で受け取ったリクエスト・ラインとヘッダーをそのままクライアントへ送り返す。プロキシサーバーなどを使う環境で、リクエストが書き換えられる様子を調べるときに使う。
CONNECT 暗号化したメッセージをプロキシで転送する際に用いるメソッド

 

クライアントからのリクエストメッセージがWebサーバーに届いたら、Webサーバーは、その内容を解読し、URIとメソッドを調べて、「何を」「どうする」かを判断して、その要求によって動作し、その結果生じるデータを、クライアントへのレスポンス・メッセージに格納します。その先頭部分に、実行結果が正常に終了したか、以上だったかを表すステータス・コードを付します。例えば、エラーが出てWebサーバーにアクセスしたときにファイルが見つからずに「404 Not Found」などと表示されることがありますが、この404の数値のことをステータス・コードといいます。これらのコードの後にヘッダー・フィールドとページのデータが続いて、レスポンスメッセージとしてクライアントに送り返され、クライアント側のブラウザがメッセージの中からデータを取り出して画面に表示します。これでHTTPの動作は終了します。

  • GETメソッド

GETメソッドについては、通常Webサーバーにアクセスして、ページのデータを読み出す時に使用されます。最初にリクエスト・メッセージのメソッドにはGETと記述し、URIにはそのページのデータを格納したファイル名を書き出します。つまり、ここで送信されたページのファイルデータを読み出すという操作をします。このメッセージがWebサーバーに届いたら、サーバーはこのファイルデータを取り出して、そのデータをレスポンス・メッセージの中に格納してクライアントに送り返します。そして、クライアント側のブラウザがそれを受け取って画面に表示します。

  • POSTメソッド

POSTメソッドもよく使われるメソッドのひとつです。これは、フォームデータに入力されたデータをWebサーバーに送信する場合に使用します。POSTメソッドを使用する場合、URIにはWebサーバー・マシン内で動作するアプリケーション・プログラム(主に入力データの処理)のファイル名を記述します。(index.cgiやindex.phpなどの形式)そして、リクエスト・メッセージの中には、メソッドとURIに加えて、CGIプログラムやスクリプトに渡すデータも記述されます。そのデータとは、ユーザーがフィールドに入力した値のことです。このリクエスト・メッセージがサーバー・マシンに届いたら、Webサーバー・ソフトはURIで指定されたアプリケーション・プログラムにリクエスト・メッセージ中に記述されているデータを渡します。そして、そのプログラムが出力するデータを受け取って、レスポンス・メッセージに格納してクライアントに送り返します。

HTTPではこのGETとPOSTの2つのメソッドを使用して、ページ・データをWebサーバーから読み出したり、ページ内のフィールドに記入したデータをWebサーバーに送ったりしながらやり取りを行っています。そのほかにも、PUTやDELETEを使えば、クライアントからWebサーバーのファイルを書き変えたり、削除することもできます。セキュリティなどの問題から、GETとPOST以外のメソッドを使用するクライアントが広く普及していませんが、表のようなメソッドを利用することで、HTTPプロトコルを様々な目的に応用することが可能になっています。


 

 

 

コメントを残す

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