Cookie(クッキー)とは?わかりやすく解説する

Web技術
スポンサーリンク

Cookie(クッキー)ってなに?

どういう時に使われるの?

こういった疑問にこたえます。

この記事を読めば
  • Cookieの役割がわかる
  • どのようにCookieが送られているのかわかる

エンジニアの僕がわかりやすく解説します。

Cookieとは?

HTTPはステートレスなプロトコルであるため、WebブラウザとWebサーバは前後の通信の関連性がわかりません。

そのため、ショッピングサイトなどで状態を保持する必要がある場合はCookieと呼ばれるデータが使われます。

Cookieの受け渡し

Cookieの受け渡し
Cookieの受け渡し

Webサーバへ接続してきたWebブラウザに対して、コンテンツなどと一緒にCookieのデータを送信します。

Cookieを受け取ったWebブラウザはそのデータをWebブラウザに保存します。

Webブラウザは次回以降、Webサーバにリクエストをする場合に保存しておいたCookieを一緒に送ります。

Webサーバは送られてきたCookieを見てどのブラウザからの要求かというのを判断するというわけです。

HTTPメッセージヘッダーの利用

Cookieの送信にはHTTPのメッセージヘッダーが利用されます。

WebサーバはHTTPレスポンスに「Set-Cookie」ヘッダーを含めることでWebブラウザにCookieを保存させます。

HTTPレスポンス

逆に、WebブラウザがWebサーバにCookieを送るときは「Cookie」ヘッダーを含めることで送信できます。

HTTPリクエスト

「Set-Cookie」ではCookieの有効期限を設定したり、HTTPSの場合のみCookieを送信するように設定したりできます。

名前内容種別
Set-Cookie状態を保持・管理するための情報(Cookie)レスポンスヘッダーフィールド
CookieWebサーバから受け取ったCookieの値リクエストヘッダーフィールド
Cookieで利用されるヘッダーフィールド

Set-Cookieヘッダーフィールドには次のような属性を記述します。

属性内容
name=valueCookieにつける名前とその値
expires=dateCookieの有効期限。指定がない場合はブラウザが閉じたら削除される
max-age=secondsCookieの存続時間を秒数で指定
secureHTTPSで通信している場合のみCookieを送信
httponlyJavaScriptからのCookieへの参照制限
domain=DOMAIN_NAMECookieが利用されるドメイン名
path=PathCookieが利用されるサーバ上のパス
Set-Cookieの属性

セッションCookieとは?

有効期限が設定されていないCookieはWebブラウザを閉じると破棄されます。

このようなCookieをセッションCookieと言います。

一方、有効期限が設定されているCookieはブラウザが閉じられた後もWebブラウザに情報が保存されたままになります。

Cookieの情報はWebブラウザを特定するための重要な情報です。

つまり、Cookieの情報が盗まれるとなりすましの被害に遭ったりする恐れがあるということです。

このため、ショッピングサイトなどではセッションCookieが利用されることが多いです。

Cookieとは?まとめ

解説の内容をまとめます。

  • CookieはHTTPがステートレスという弱点を補うための仕組み
  • WebサーバはCookieの情報を見てWebブラウザを判別する
  • CookieはHTTPヘッダーフィールドを使ってやり取りされる

以上、お疲れ様でした。

コメント

タイトルとURLをコピーしました