ネットワークって。。。#39(アプリケーションプロトコル)
今回はHTTPの話。
HTTP。。。Hyper Text Transfer Protocolの略で、エイチティーティーピーって読みます。
またまたそのままですが。。。笑
前回までのおさらいです。
WWWは大きく3つの定義から構成されます。
1つ目は、情報へのアクセスする手段と位置情報の定義
2つ目は、情報の表現フォーマットの定義
3つ目は、情報の転送などの操作の定義
それぞれ、
URI(Uniform Resource Identifer)
HTML(HyperText Markup Language)
HTTP(HyperText Transfer Protocol)
と呼ばれるものです。
HTTP(Hyper Text Transfer Protocol)
皆さんもHTTPとかHTTPSって聞いた事ある方も多いと思います。
ブラウザのURL(アドレス)入力欄で、http]//www.・・・みたいなのをよく見かけますよね。。。よね?多分笑
これって、HTTPというプロトコルを使ってWebサーバとやり取りしているんです。
例えば、
だと、ブラウザがwww.aaa.jpというWebサーバに対して「bbb.htmlというページを頂戴」(HTTPリクエスト)ってお願いして、それに対しWebサーバは「bbb.htmlはこれですよ」(HTTPレスポンス)ってブラウザに返し、ブラウザが返ってきたbbb.htmlを表示している感じです。
ちなみに、httpはポート80番、httpsはポート443番で通信します。
HTTPメソッド
ブラウザは、HTTPを使ってWebサーバ上のアプリケーション(プログラム)とも通信が出来ます。
http://www.aaa.jp/ProgramCCC?key=value
これは、ブラウザがwww.aaa.jpというWebサーバに対して「key=valueという条件でProgramCCCを動かした結果を頂戴」ってお願いして、Webサーバは「はい、結果はこれ」って返して、その結果をブラウザが表示する感じです。
例えば、AmazonでHTTPっていう条件で検索したら、
https://www.amazon.co.jp/s?k=HTTP&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss_2
っていうURLになります。
これは、amazonのWebサーバに対して「k=HTTPという条件でsというプログラムを動かした結果を頂戴」って感じです。
ちなみに、&__mk_ja_JP=%E3%82・・・以下の部分は、日本からなので、日本のコンテンツを表示みたいに、Amazonが内部的に制御しているものだと思います。。。多分
で、このProgramCCC?key=valueの?以降、つまりはkey=valueという文字列をWebサーバに渡す方法のことをHTTPメソッドっていいます。
URLに?とパラメータを付けて渡す方法は、GETというメソッドで渡しています。
以下に、HTTPメソッドの一覧を記載します。
- GET:指定したURLのデータを取得
- HEAD:メッセージのヘッダだけを取得
- POST:指定したURIにデータを登録
- PUT:指定したURIにデータを保存
- DELETE:指定したURIのデータを削除
- TRACE:リクエストメッセージをクライアントに戻す
HTTPステータスコード
要求を受けたWebサーバは、クライアント(ブラウザ)にHTTPレスポンスを返す際に、実際のコンテンツやコンテンツ返すコンテンツの種類(Content-Type)やデータ長(Content-Length)等の属性情報に合わせて、ステータスコードを返します。
例えば、要求が成功した場合は「200 OK」、資源が存在しない場合は「404 Not Found」等です。
主にステータスコードは、以下のようになります。
- 100番台:情報提供
- 200番台:成功
- 300番台:転送(Redirect)
- 400番台:クライアントエラー
- 500番台:サーバエラー
まとめ
- HTTPはクライアント(主にWebブラウザ)とWebサーバが通信するプロトコル。
- HTTPは80番ポート、HTTPSは443番ポートで通信。
- クライアントからWebサーバにリクエストを送る方法をHTTPメソッドと呼ぶ。
- HTTPレスポンスには、実際のコンテンツに加え、コンテンツの種類(Content-Type)、データ長(Content-Length)等の属性情報、レスポンスのステータスコードが含まれる。
今回は、以上になります。
最後まで読んで頂き、ありがとうございました。
【参考書籍】