お問い合わせ窓口

HTTP

HTTP(Hyper Text Transfer Protocol)とは、WWW(World Wide Web)上でWebサーバーとクライアント(Webブラウザなど)が、 HTML(Hyper Text Markup Language = Webページを記述するための言語)で書かれた文書などの情報をやりとりする時に使われるアプリケーション層の通信手順(プロトコル)のことを言います。

またHTMLのほかに、文書に関連付けられている画像、音声、動画などのファイルを、表現形式などの情報を含めてやり取りできます。

HTTPは、ファイル伝送に利用されるFTPや、電子メールのやりとりに用いられるSMTPなどと並び、インターネット上で最も頻繁に利用されるプロトコルの一種となっています。

HTTPでは、データを受信する側(クライアント)が要求をサーバーに伝え、それに対してサーバーが応答します。

たとえば、ユーザがURLを使って接続したいWebサーバーと表示したいWebページを指定すると、Webブラウザは指定されたサーバーに接続して、Webページを取得するためのコマンド(GETメソッド)を送信します。

サーバー上に該当するファイルがあれば、その結果をHTMLなどのファイルとしてWebサーバーからWebブラウザに転送します。

HTTPの特徴は、このように基本的にステートレスな通信であり、一つの要求(リクエスト)に対し、一つの応答(レスポンス)で完結するというシンプルさにあります。

HTTPでは、データを受信するときに使う「GET」のほかに、データを送信する「PUT」「POST」などのメソッドが用意されています。

Webブラウザは、要求時にこうしたメソッドを使ってサーバーに要求を伝えます。

HTTPにおけるデータは、制御情報を持つHTTPヘッダ部と、コンテンツデータを含むHTTPボディ部からなる単純な構造をしています。

転送可能な情報の種類には、特に制限がありません。

HTTP1.1において、HTTP要求で指定されるHTTPメソッドには次のようなものがあります

1.     GET: 相手サーバーからクライアントへのファイル伝送要求
2.     POST: クライアントから相手サーバーへのデータ送信要求(HTTPボディ部を用いる)
3.     PUT: クライアントから相手先サーバーへのファイルのアップロード要求
4.     HEAD: 相手先サーバーのファイル更新情報の問い合わせ要求
5.     DELETE: 相手先サーバーのファイルの削除要求
6.     CONNECT: プロキシの指定要求
7.     OPTIONS: 利用可能なオプションの問い合わせ要求

HTTPのWeb上での典型的な利用の仕方としては、おおむね以下の通りです。

まず、ユーザは、Webブラウザ上で参照先ドキュメントのURL(Uniform Resource Locator)を指定します。

URLは「http://server.mydomain.jp/dir/document.html」のような形をしています。

「http」は、プロトコルの種類(暗号化通信の場合は、httpsとなります)、「server.mydomain.jp」は、接続先ドメイン名を意味します。

Webブラウザは、ドメイン名をDNSに問い合わせ、IPアドレスを得て80番ポートに接続します。

接続が成功すると、相手先のサーバーに対して、1行目に「GET /dir/document.html HTTP/1.0」のようなデータを持つ、HTTPヘッダ部を持つHTTP要求パケットを送信します。

この1行をリクエスト行と呼びます。

先ほど述べたように、「GET」は、HTTPメソッドの一つで、ファイルの伝送を要求するものであります。

次の「/dir/document.html」は伝送要求する文書名で、サーバー上の論理的なパス名で指定します(物理的なパス名と一致するとは限りません)。

最後の「HTTP/1.0」は利用するHTTPプロトコルのバージョンを指定しています。

この要求を受信した相手先のWebサーバーは、「HTTP/1.0 200 OK」のような行(レスポンス行)を含むHTTPレスポンスを返します。

ここで、「HTTP/1.0」は、HTTPプロトコルのバージョン、「200」はステータス番号で200は正常の意味です。

異常の場合は200番以外の数値が返ります。「OK」は、補足メッセージで、エラー時には付加的な情報を返します。

要求された文書データは、HTTPレスポンスのHTTPボディ部で伝送されます。

ヘッダ部とボディ部の区切りは、空行1行で指定されます。

またHTTPにSSL(Secure Sockets Layer)の暗号化を施し、セキュリティ性を向上させたプロトコルとして、HTTPSがあります。