PHP/Elixirエンジニアのブログ

有益なアウトプットを心がけます。

【Webシステム】クッキー(Cookie)?なにそれおいしいの?

いつもご覧いただきありがとうございます。
 本日は「Cookieとは何か」について書いていきます。

 

Cookieとは

極論、WebアプリケーションとWebブラウザの間で

情報を交換できるようにしたものです。

 

Cookieの語源

諸説ありますが、アメリカ合衆国やカナダの中華料理店で食後に出される

「fortune cookie(フォーチューン・クッキー)」に由来してるという説が有力です。

フォーチューン・クッキーには日本のおみくじのように1つずつ違う言葉が書かれた

紙片が入っています。

UNIXシステムなどのサーバーにログインしたとき、格言や運勢など毎回異なるメッセージを表示する機能がありますが、このようにサーバからクライアントへ送られる短いメッセージ(データ)がフォーチューン・クッキーにちなんで「Cookie」と呼ばれるようになりました。

 

Cookieの具体例

アクセスしたWebサーバーからCookieが発行されブラウザに渡される。 ブラウザはCookieをローカルストレージに保存。 次回以降、ブラウザはCookieとともにWebサーバーへアクセス。 WebサーバーはCookieの内容にあわせて、カスタマイズしたページを表示。 Webサーバーは識別子をアップデートしてCookieをブラウザへ返す。

Cookieの構成

Cookieの構成は、サーバー側で設定することができます。nameとvalueは必ず設定しなければならず、それ以外の値に関しては設定しなくても大丈夫です。必要に応じて設定します。

  • name
  • value Cookieがもつ値です。
    • ここにCookie IDを持たせて、ブラウザを認識させたり、訪問回数を記録するように設定したりすることができます。
  • expires
    • Cookieの有効期限を設定します。
  • domai
  • path
    • Cookieが発行されるパスを設定します。特定のパス下のみでCookieを発行したいときに設定します。
  • secure
    • アクセス先がSSLを実装しているような安全なサイトの場合のみ、Cookieを発行するように設定ができます。この項目は省略せずにきちんと設定するようにしましょう。

Cookieの危険性

Cookieを利用したやり取りはHTTPのリクエスト・ヘッダやレスポンス・ヘッダを利用して行われます。知識のある人ならば専用のツールを利用することで簡単に覗けてしまいます。またPC上に保存されたCookieも簡単に覗くことができます。

そこでセッションと呼ばれる仕組みを利用したりしてセキュリティの問題をカバーすることが求められます。

Cookieとは何か」についてかんたんにまとめさせていただきました。
 
 最後までご覧いただきありがとうございました。