ネットワーク

【ネットワーク】HTTP【リクエストメッセージ・レスポンスメッセージを作成する】

HTTPとは?

httpとは、Webサーバーとwebクライアントがデータの送受信をする時に用いられるプロトコルです。ブラウザのURLをクリックするとそのURLをブラウザが解読します。URLを元に何を求めるかと言うとリクエストメッセージの送り先やリクエストする内容などHTTPリクエストメッセージを作るための材料を用意します。

まず最初に完成したHTTPリクエスト・レスポンスメッセージの構造を見てきましょう

HTTPリクエストメッセージ

構造

<メソッド><空白><URI><空白><HTTPバージョン> //リクエストライン
<フィールド名>:<フィールド値> //メッセージ・ヘッダー



<空白行>
<メッセージ・ボディー> //メッセージボディー

GET /somedir/page.html HTTP1.1
Host: www.school.edu
User-agent: Mozilla/4.0
Connection: Close
Accept-language: fr

HTTPのレスポンスメッセージ

構造

<HTTPバージョン><空白><ステータスコード><空白><レスポンス・フレーズ>//レスポンスライン
<フィールド名>:<フィールド値> //メッセージ・ヘッダー



<空白行>
<メッセージ・ボディー> //メッセージボディー

HTTP/1.1 200 OK
Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …… Content-Length: 6821
Content-Type: text/html

data

HTTPのメソッド

GET

URIで指定した情報を取り出す。ファイルの場合、そのファイルの中身を送りだす。CGIプログラムの場合はそのプログラムの出力データをそのまま返送する

POST

クライアントからサーバーにデータを送信する。ファームに入力したデータを送信する場合などに使う

HEAD

GETとほぼ同じ。ただし、HTTPのメッセージ・ヘッダーファイルを送りだすだけで、データの中身を返さない。ファイルの最終更新日時などの属性情報を調べる時に使う

PUT

URIでしてしたサーバー上のファイルを置き換える。URIで指定したファイルが存在しない場合は、新たにファイルを作成する

DELETE

URIで指定してたサーバー上のファイルを削除する

URI→ページのデータを格納したファイルの名前やCGIプログラムのファイル名など

CGI→Webサーバー・ソフトからプログラムを呼び出す時のルールを定めたものでそのCGIのルールに則って動くプログラムのことをCGIプログラムといいます

HTTPのステータスコード(レスポンスメッセージの先頭行)

100番台:処理の経過状況などを通知する
200番台:正常終了
300番台:何らかの別のアクションが必要である事を表す
400番台:クライアント側のエラー

・403:Forbididden
リソースにアクセスする権利がない

・404:Not Found
リソースが見つからない。例)URLが間違っていてリソースが見つからない

500番台:サーバー側のエラー

・503:Service Unavailable
サービス利用不可:サービスが一時的に過負荷やメンテナンスで利用不可能になっている。例)アクセスが集中して処理不能に陥った

詳しく知りたい方はこちら:
https://ja.wikipedia.org/wiki/HTTPステータスコード

応用

リクエスト・メッセージに書くURIは一つだけ、複数のファイルを読み出す時は、別々にリクエスト。メッセージをWebサーバーに送ります。