リクエストメソッドの種類
メソッド | 役割 |
---|---|
HEAD | GET リクエストと同じだが レスポンス本文(body)を返さない。 |
OPTION | 対象リソース(サーバ)の通信オプションを示す |
CONNECT | 対象リソースで識別されるサーバーとの間に トンネルを確立 |
TRACE | 対象リソースへのパスに沿ってメッセージの ループバックテストを実行。(ネットワーク経路の調査) |
HTTPレスポンスステータスコード
101
プロトコルの切り替え
200
成功レスポンス
201
リソースの作成が成功(主にPOST)
301
永続的なリダイレクト(GET、HEADで使用)
304
キャッシュしたファイルを使用する。
リソースを再送しない。
307
一時的なリダイレクト
400
クライアントエラー
401
要認証
403
アクセス権がない
404
リソースが存在しない
500
サーバーエラー
HTTPヘッダフィールド
Accept-Language
ブラウザが受け入れ可能な言語を設定できる
Accept
クライアントが受け入れ可能なコンテンツタイプ(MIMEタイプ)を設定
Age
プロキシのキャッシュに入ってからの経過時間(秒)
Authorization
認証情報
Cache-control
キャッシュを制限する
Content-Encoding
メッセージの内容に適用されているエンコード方式とその順番を保持
Content-Type
リソースの元のメディア種別。POST, PUTで使用。
Cookie
クッキーの送受信
Content-Language
ユーザー向けの言語を設定
Content-Length
メッセージボディのサイズ
Expires
リソースの有効期限(レスポンスが古くなると見なされる日時)
From
リクエスト元の user agent を制御する人のユーザーの E メールアドレスを含む
Host
サーバーのホスト名とポート名
Last-Modified
リソースの最終更新日時
Location
リダイレクト先のURL
Referer
前のページのURL
User-Agent
リクエストしたブラウザを識別する特殊文字列
※ 実際のリクエスト例
POST http://www.hogehoge HTTP/1.1
Content-Length: 38
Content-Type: text/plan
Accept-Language: japaram=123
というように、
リクエストメソッド URL HTTPバージョン
HTTPヘッダ
HTTPヘッダリクエストボディ
という構成になっている。
HTTPSについて
- HTTPに比べて、安全に通信を行う為のプロトコル
- SSL/TLSで暗号化して通信。暗号化は、CA(認証局)が発行する証明書が必要
- 暗号化が必要な為、HTTPと比べて負荷がある
またhttp
とhttps
のポート番号は以下である。
http -> 80
htps -> 443
HTTPクッキー
Cookieとは、サーバーがクライアントのブラウザーに送信する少量のデータ(4KBほど)。
ブラウザは、Cookieを保存・作成・更新しサーバーに送信することができる。
セキュリティの観点から、HTTP通信、Javascript操作をさせたくない場合は、HTTPクッキーにSecure、HttpOnly属性を追加する。
URLの構成
スキーマ://ホスト名:ポート番号/ディレクトリ/ファイル名
となっている。
またスキーマ://ホスト名:ポート番号までをオリジン
と呼ぶ。
例:https://hoge.com/⚪︎×△◻︎/foo/edit?q=123#top
の場合、https://hoge.com までがオリジン
となる。
#top
はフラグメントと呼び、同一ページ内のリンクを扱う。
Basic認証
- ブラウザで、ユーザー名・パスワードをBase64化してAuthorizationに付与する
- 認証失敗した場合、サーバーから
401
が返却
Digest認証
- ユーザー名とパスワードを、
SHA-2
かMD5
ハッシュ値化した上でリクエストする - Basic認証より安全
※ ハッシュ化とは、一定んアルゴリズムで元データからハッシュ値化を生成。元データに変更があれば、ハッシュ値も変更される。サーバーで、あらかじめ保持データのハッシュ値かしておくことでクライアント側とのデータの突き合わせが可能となる