HTTPプロトコルとは
HTTPリクエスト
HTTPリクエストは、クライアント側で作成してサーバーに送る情報です。
*クライアントとは、アクセスする側のPCをイメージしてください
HTTPリクエストには、①HTTPリクエスト行、②HTTPヘッダー、③ボディの情報があります。
リクエスト行は、具体的にどのような要求をしたいか、コマンドを指定し、HTTPヘッダーではどのようなユーザーがリクエストをしているのか、という情報を渡します。
具体的な種類についてみていきましょう。
リクエスト行で使うメソッドの種類
クライアントからサーバーに要求を出すときに利用します。コンテンツを取得したいのか、削除したいのか、データを送信するのか、、
よく使うのはGETですが他にも以下のようなコマンドがあります。
メソッド | 意味 |
GET | コンテンツの取得 |
HEAD | コンテンツのヘッダだけの取得 |
POST | フォームなどのデータの送信 |
PUT | コンテンツの送信 |
DELETE | コンテンツの削除 |
キャッシュで残っているものと比較して、これよりも新しい場合はGETするという利用方法が挙げられます。
無駄なデータのやり取りをなくすためですね。
ヘッダーの種類
続いてリクエストヘッダーについてです。
ユーザーIDやどのブラウザーでアクセスしているのか、などの情報を送ります。
ヘッダー | 意味 |
Accept-Language | 受信可能な言語 |
Authoritization | ログインユーザー情報 |
Cookie | クッキーと呼ばれる小さな情報 |
Host | 接続先のサーバーの名前 |
if-Modified-Since他 | 指定した時刻以降に更新してほしい旨の指定 |
一番下のボディはPOSTする際のパラメーターなど、必要に応じて送ります。
HTTPレスポンス
先ほどのように、クライアント側からリクエストを受けたら、サーバー側がレスポンスをします。レスポンスの情報はサーバー側で作られます。
HTTPレスポンスには①ステータス行、②HTTPヘッダー、③ボディの3つのパートがあります。
ボディには、みなさんが通常見ているHTMLや画像、CSSやJavaScriptが入ります。
具体的にどのような情報が返ってくるのか見てみましょう。
ステータスコード
サーバーからの応答として、コードが表示されます。
リクエストが成功したのか、どのようなエラーが発生しているのかを示しています。
コードの意味は以下のようになっています。
コード | 意味 |
100番台 | インフォメーション。処理の継続中 |
200番台 | 成功 |
300番台 | リダイレクト(他のサーバーへの転送) |
400番台 |
クライアント側のエラー。不正なリクエスト、 アクセス権がない。パスに相当するリソースが存在しない |
500番台 | サーバー側のエラー、プログラムのエラー、混雑している |
主なレスポンスヘッダー
続いて、サーバーから受け取るヘッダー情報には次のような種類があります。
ヘッダー | 意味 |
Location | 300番台ステータスコードの時の移動先 |
Server | サーバ名やリフトなどの情報 |
WWW-Authenticate | 認証が必要なことを示す |
Content-Length |
コンテンツの長さ |
Content-Type | コンテンツの種類 |
Last-Modified |
最終更新日時 |
Expires | コンテンツの有効期間 |
コード | 意味 |
text/plain | テキスト形式 |
text/html | HTML形式 |
text/css | CSS形式 |
text/javascript |
javascriptファイル |
application/pdf | PDF形式 |
application/msword |
WORD形式 |
application/vnd.ms-excel | EXCEL形式 |
application/zip | ZIP形式 |
application/octet-stream | 汎用バイナリ形式 |
image/jpeg,image/jpg | JPEG形式 |
image/png |
PNG形式 |
最後に
今回は、HTTPでやり取りされる情報についてみていきました。
サーバーとのやり取りがうまくいっていない時は、どのようなステータスコードになっているのかを確認することが、解決の糸口になります。
ブラウザ上でF12キーを押して、Networkの項目をクリックすると、StatusやTypeなどが確認できますので、是非参考にしてください(^^)