🕌
【3分間HTTP&メールプロトコル基礎講座】第3、4、5回HTTPの動作、 HTTPリクエスト、HTTPレスポンス
HTTPの動作
HTTP
- HTTPハイパーテキストの要求と転送を行うプロトコル。
- 現在はHTTP1.1が主流
- クライアントは、ブラウザや、検索サイトが使うロボットなどがあり、それらをまとめて***ユーザーエージェント(UA)***と呼ぶ。
- サーバーソフトはwebサーバーアプリケーションと呼ばれることがおおい。
- 「ホームページをみる」とよくいうが、サーバにあるファイルを「見て」いるわけではない。
- 実際は、「ダウンロードして、キャッシュに保存する」。それをUAで「開いて」「見て」いる。「ダウンロードしている」ということ。
- 一つのweページを閲覧するのには、通常、複数のリクエストとレスポンスを行う。
- htmlファイルを受け取り、そこに書かれている内容を見て、画像などが必要であれば別個に要求する。
HTTPメッセージ
-
HTTPは文字ベースのリクエストとレスポンスを行う
- 改行が意味を持っている
- リクエストとレスポンスの制御情報は文字で書かれている。
- リクエストとレスポンス、まとめてHTTPメッセージと呼ぶが、構成は「ヘッダ」+「ボディ」の形をとる。
- httpヘッダでは、改行コードにより区切りが行われる
- ヘッダはいくつかある。
- ボディには、 HTMLファイルや、画像ファイルなど、リクエストによって要求されたファイルのデータが入ることになる。リクエストの場合はボディなし、か、webページを見るために必要なデータを入れることになる。
- HTTPメッセージは開始行、メッセージヘッダ、ボディからなる
HTTPリクエスト
メソッド
- リクエストの開始行である、リクエスト行には、3つの情報が書かれている。メソッド、リクエストURI、HTTPバージョン。この3つは空白文字で区切られる。
- メソッドは、リクエストで何を要求したかを決めるもの。
- GET・・・リソースの転送を要求するもの。
-
POST・・・データを送信する際に使用される。CGIなどにデータを送るときに使う。
- CGは動的ページ(こちらの入力に合わせてページを新しく作成するための仕組み)
- このような動的ページを作る仕組みが、CGIと呼ばれる
リクエストURI
- URI・・・リクエストするリソースを指定するためのもの
- 子の書き方は相対URIを記述するのが一般的。
- 相対URIは、ホームディレクトリからみたリソースの場所
- 相対URIは必ずスラッシュから始まる
- 例外として絶対URIを記述する場合がある。これはプロキシサーバ経由でのリクエストを行う場合に使用する。
- プロキシサーバは簡単にいうと、HTTPメッセージを中継するサーバのことで、これを使う場合はhttp://から始まるURIで、WWWでのリソースの場所を示す。
HTTPレスポンス
ステータスコード
- レスポンスの開始行、ステータス行は、HTTPバージョン、ステータスコード、応答フレーズからなる。リクエスト行と同じく空白文字で区切られる。
- HTTPバージョンが、サーバが使用できるバージョンを示す。
- UAが使っているHTTPバージョンをリクエストで送り、サーバが使用しているHTTPバージョンをレスポンスで送る。
- ステータスコードと応答フレーズは、レスポンスの意味を説明するためのもの。
代表的なステータスコード
- 200OK・・・リクエストが正常であり、正しく受け入れられたことを示す
- 301 Moved Permanently・・・指定したリソースが移動し他ので、移動さきのURIを要求してください
- リクエストURIの最後のスラッシュがない場合に使われる
- 最後のスラッシュがない場合、2回リクエストを送る場合がある。
- 401 Unauthorized・・・認証失敗
- 404 Not Found・・・指定したリソースが存在しない
- 500 Internal Server Error ・・・Webサーバアプリケーション側の事情でエラーになった場合。
Discussion