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