見えるセキュリティ
Cookieの基本
HTTP COOKIE BASICS
この概念とは?
Cookieとは、HTTPの通信をまたいで状態を扱うために、Browserが保存・管理する情報です。この教材で扱う基本形では、ServerがHTTPレスポンスのSet-CookieヘッダーでCookieをBrowserへ渡し、Browserがそれを保存します。その後、条件に一致するリクエストでは、Browserが保存済みCookieをCookieヘッダーへ含めてServerへ送ります。
Cookieは、ServerとBrowserの間を毎回そのまま往復するデータではありません。基本形では、Serverから受け取ったCookieをBrowserが保存し、その後のリクエストごとに送信対象かを判断して、必要なCookieの値をHTTPリクエストへ含めます。
- THEME
- secure-dev
- KIND
- mechanism
- REVIEW
- self-reviewed ·
1. BrowserがServerへアクセスする
BrowserがWebサイトへアクセスします。この時点では、今回使用するCookieはまだBrowserに保存されていません。
STEP 1 / 6: BrowserがServerへアクセスする
この概念の要点
要点
CookieはBrowserに保存される状態情報
この教材で扱う基本形では、ServerがSet-CookieでCookieをBrowserへ渡し、BrowserがCookie Storeへ保存します。
要点
Set-CookieとCookieは役割が違う
ServerからBrowserへCookieを設定するときはSet-Cookieレスポンスヘッダーを使い、BrowserからServerへ送るときはCookieリクエストヘッダーを使います。
要点
保存されたCookieが毎回すべて送られるわけではない
Browserは後続のリクエストごとに送信対象となるCookieを判断し、対象となったCookieをHTTPリクエストへ含めます。
要点
Cookieを送ってもBrowserから消えるわけではない
Browserは保存済みCookieから送信対象の値をCookieヘッダーへ含めます。Cookieを送信したからといって、保存済みCookieそのものがServerへ移動してなくなるわけではありません。
要点
Cookieはログイン専用ではない
Cookieにどのような意味を持たせるかはWebアプリによって異なります。ログイン状態の識別だけでなく、表示設定などの状態を扱うためにも利用できます。
理解確認
参考資料
- RFCRFC 6265: HTTP State Management Mechanism
RFC 6265Cookieの保存とSet-Cookie・Cookieヘッダーの基本的な仕組みを定める仕様