HTTPの基礎 : HTTP
(X)HTMLに関連して、HTTPの基本事項。HTTP(Hyper Text Transfer Protocol)
HTTPとは、ウェブサーバとウェブブラウザ間の通信で利用されるプロトコル※1です。HTTPはTCP/IP※1のアプリケーション層に位置します。※1:プロトコルとは“規約”や“決め事”といった意味を持ちます。 ※2:正確にはTCP/IPプロトコルスウィートです。 HTTPはクライアント※1からウェブサーバへの要求であるHTTPリクエストとウェブサーバからクライアントへ応答であるHTTPレスポンズで構成されます
※1:多くの場合クライアントとはウェブブラウザです。
HTTPリクエスト
クライアントからサーバへ送信されるHTTPメッセージをHTTPリクエストと呼ぶます。HTTPリクエストは次の3つの部分から構成されています。- リクエスト・ライン
- リクエスト・ヘッダー
- メッセージ・ボディ
リクエスト・ライン
HTTPリクエストの必須部分であり、メソッド,リソースのURI,HTTPバージョン情報で構成されます。 (例) GET /index.html HTTP1.1| GET | → | メソッド |
| /index.html | → | リソースのURI |
| HTTP1.1 | → | HTTPバージョン |
リクエスト・ヘッダー
クライアントは以下のような付加情報をリクエスト・ヘッダーとしてウェブサーバに渡します。- ウェブブラウザ名,バージョン情報
- ウェブブラウザで利用可能な言語や文字コード
メッセージ・ボディ
リクエスト・ラインのメソッドでPOSTを指定した場合はHTMLフォームのデータがメッセージボディーとして送信されます。HTTP1.1 リクエスト・ラインのメソッド
メソッドはクライアントがサーバに実行を要求するアクションを指定します。 HTTP1.1ではGET,POST,HEAD,PUT,OPTIONS,DELETE,TRACE,CONNECTがあります。このうち良く使われるのが、GETとPOSTです。本文でもGETとPOSTのみ説明します。GET
URIで指定したリソースをウェブブラウザに送るように指示する。GETは一般的な静的リソース(.html,htm,gif,jpg等)を取得するが、パラメータが少ないかもしくは全くない場合には動的なリソースを取得することもできる。GETの?以降のパラメータをクエリ文字列と呼びます。 GET /cgi-bin/sample.cgi/?name=myname&password=mypassword HTTP1.1 デフォルトではクライアント(Webブラウザ)からサーバへのHTTPリクエストはGETで行われます。しかしその他のメソッドを利用するようにブラウザの動きを変更することができます。具体的には、HTMLのform要素のaction属性にpostを指定するなどの方法があります。次にPOSTメソッドについて書きます。POST
ウェブブラウザからウェブサーバへデータを送信(通常HTMLフォームから)する際に使われます。 データはメッセージ・ボディとして送信されます。通常はメッセージボディーのメタ情報として、Content-TypeやContent-Lengthなどの行をリクエスト・ヘッダーに追加して送信します。 (例)| リクエスト・ライン | → | POST /cgi-bin/htmlform.cgi HTTP1.1 |
| リクエスト・ヘッダー | → | User-Agent:MOZILLA1/0 Content-Type:application/x-www-form-urlencoded Content-Length: 31 |
| 空行 | → | |
| メッセージボディ | → | name=myname password=mypasssword |
HTTPレスポンズ
サーバからクライアントへ送信されるHTTPメッセージをHTTPレスポンズと呼びます。 HTTPレスポンズは3つの部分から構成されます- ステータス・ライン
- レスポンズ・ヘッダー
- レスポンズ・ボディー(HTMLデータ)
ステータス・ライン
ステータス・ラインはそれぞれ空白で区切られたHTTPバージョン、リクエストの結果を表すレスポンズのステータスコード、ステータスコードを説明する英語文字列で構成されます。レスポンズヘッダ
レスポンスのデータ(HTMLなど)を説明するContent-TypeやContent-Lengthなどが記述されます。メッセージ・ボディ(HTMLデータ)
(例)| ステータス・ライン | → | HTTP1.1 200 OK |
| レスポンズ・ヘッダー | → | Data:Tue,01,Dec 2001 23:59:59 GMT Content-Type:text/html Content-Length: 47 |
| 空行 | → | |
| HTMLデータ | → | <html> <body> <h1>Hello,World!</h1> </body> </html> |
HTTPリクエスト/リスポンズを見るツール
ブラウザのプラグインとしてHTTPリクエスト/レスポンズを表示するソフト(LiveHTTPHeaders)をご紹介します。 http://livehttpheaders.mozdev.org/関連記事
- 関連記事は見つかりませんでした。
検索ボックスからの検索もお試しください。
コメント
コメントはまだありません。
コメントの投稿
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。
トラックバックURL
http://www.findxfine.com/programming/http/439.html/trackback