Protocol)とは、ハイパーテキスト、すなわちWebサイトを構成するWebページ(HTMLファイル)を転送するためのプロトコルです。HTTPはハイパーテキストを転送するためだけに利用しているわけではありません。ハイパーテキストに限らず、さまざまな種類のファイルを転送する汎用的なファイル転送プロトコルとして利用できます。HTTPを利用して、JPEGファイル、PNGファイルなどの画像ファイルはもちろんのこと、PDFファイルやWORDファイル、EXCELファイルなどの文書ファイルの転送も可能です。HTTPはTCP/IPの最上位のアプリケーション層に位置するプロトコルで、下位のトランスポート層にはTCPを利用します。ウェルノウンポート番号は80です。HTTPによるファイル転送はHTTPリクエストとHTTPレスポンスのやり取りによって行います。HTTPによるファイル転送の概要HTTPリクエストWebブラウザからWebサーバアプリケーションへ送信されるHTTPリクエストは、リクエスト行、メッセージヘッダ、エンティティボディの3つの部分に分けられます。メッセージヘッダとエンティティボディの間には空白行があります。HTTPリクエストのフォーマットリクエスト行はHTTPリクエストの1行目で、Webサーバに対する実際の処理要求を伝えます。リクエスト行は、さらにメソッド、URI、バージョンで構成されています。メソッドは、サーバに対する要求を表していて、主なメソッドを表にまとめています。プロキシサーバ経由で通信を行います最もよく用いられるメソッドはGETです。WebブラウザでURLを入力したり、リンクをクリックしたりするとGETメソッドのHTTPリクエストをWebサーバアプリケーションへ送信します。URIはリクエストの対象となるデータを示しています。バージョンは、WebブラウザがサポートするHTTPのバージョンで主に1.0か1.1です。メッセージヘッダはリクエスト行に続く複数行のテキスト列です。ここでは、Webブラウザの種類やバージョン、対応するデータ形式などの情報を記述しています。メッセージヘッダのあとは区切りのための空白行があり、そのあとにエンティティボディが続きます。POSTメソッドでWebブラウザからデータを送るときに用いられます。HTTPリクエストのうちGETメソッドの例は以下の図のようになります。GETメソッドの例リクエスト行にはGETメソッドで「network_basic」というURIにHTTPバージョン1.1でアクセスしていることがわかります。GETメソッドの場合はメッセージヘッダの部分には、User-AgentとしてPCのOSやブラウザのバージョンなどの情報も含まれます。Referrerにはアクセス元のページの情報が入っています。GETメソッドのエンティティボディには何も入っていません。HTTPレスポンスHTTPリクエストの返事がHTTPレスポンスです。HTTPレスポンスは、HTTPリクエストと似た構成でレスポンス行、メッセージヘッダとエンティティボディから構成されています。HTTPレスポンスのフォーマットレスポンス行は、さらにバージョン、ステータスコード、説明文に分かれています。バージョンは、リクエストと同じくHTTPのバージョンを示し、現在主なバージョンは1.0か1.1です。ステータスコードはリクエストに対するWebサーバアプリケーションの処理結果を表す3桁の数字です。ステータスコードには、多くの種類があり、以下の表のように百の位で大まかな意味が決まっています。