Cookie と セッション

Date:

Share post:

普段なにげなく利用しているショッピングサイトやお問い合わせフォームなどで、どのようにログイン状態が保持され、一連の関係性のある処理としてWebブラウザに反映されているのかを簡単にまとめてみました。


・Cookie(クッキー)

図1●クッキーの役割
参考画像URL:https://xtech.nikkei.com/it/article/COLUMN/20080221/294407/

HTTP通信は、リクエスト・レスポンスの1往復のやりとりで完結された処理とみなされ、複数の処理を関連づける仕組みがありません。そのため、WebブラウザとWebサーバーの一連のやりとりにおいて、状態を保持し、管理する仕組みがありません。そのため、ショッピングサイトのログインなどで、ログイン状態を保持し管理する必要がある場合には、Cookieと呼ばれるデータが用いられます。

・Cookieのやりとり

WebサーバーにアクセスしてきたWebブラウザに対して、コンテンツなどと一緒にWebブラウザに保存してもらいたい情報をCookieとして送ります。例えばショッピングサイトであれば、接続してきたWebブラウザを識別するための情報をCookieとして送ります。Cookieを受け取ったWebブラウザはそれを保存しておき、次にWebサーバーへ接続する際に保存しておいたCookieを送信することでWebサーバーは接続してきた相手を識別することができます。

・セッションCookie

有効期限が設定されていないCookieは、Webブラウザが閉じられると同時に削除されます。このようなCookieを「セッションCookie」と呼ばれます。一方、有効期限が設定されたCookieは、Webブラウザが閉じられても削除されず、有効期限がくるまでWebブラウザ上に残ります。CookieはWebブラウザの識別にも利用されるため、盗まれると他人になりすまされることがあります。そのため、ショッピングサイトなどでは、セッションCookieがよく利用されています。


・セッション

WebサーバーとWebブラウザのやりとりにおいて、一連の関係性のある処理の流れを「セッション」と呼びます。例えばお問い合わせフォームで「入力」「確認」「送信」といった処理の流れをセッションと呼びます。

・セッションの管理

Webサーバーへのアクセスは、1台のWebブラウザからではなく、多数のWebブラウザから行われます。そのため、あるWebブラウザからの処理を関連性のある一連の処理(セッション)として扱いたい場合は、Cookieを用いてセッションを管理できます。

Related articles

EC-CUBE 4系のプラグイン開発について その...

前回、プラグインを一旦有効化させて管理...

EC-CUBE 4系のプラグイン開発について その...

以前から作成したいと考えていたのですが...

Laravel Filamentを使用した管理画面...

前回Breezeをインストールしたこと...

Laravel Filamentを使用した管理画面...

前回、filamentでのリソース作成...