はじめに
本記事では、クッキーとセッションについて記述します。
知らない・理解できていない単語シリーズです。
クッキーとセッション
主にステートフルな通信を実現するため
にそれぞれ利用され、
クッキー
はサーバーからクライアント側に付与する
情報(セッションID)の仕組みで、
セッション
はサーバー側に保存される一連の操作や通信
のことです。
ちょっと何言ってるかわからないですね。(サンドウィッチマン)
まずはHTTP通信について
以下の記事を参照。
セッション管理の周辺知識まとめ
Google先生より
ステートレス
システムが現在の状態を表すデータなどを保持せず、
入力の内容によってのみ出力が決定される方式
プロトコル
コンピューター同士が通信をする際の手順や規約などの約束事。
HTTPはステートレスなプロトコルであり,状態は持たない.クライアントがリクエストを投げてサーバがレスポンスを返す,このキャッチボールを1往復したところで通信は切れる.つまり,一度目の通信でクライアントから某かの情報を受け取ったとしても,二度目の通信は前の通信の状態は引き継がない全く関係のない通信になる.これが,HTTPの通信の原則である.
例えとして、
Amazonで、`スマブラのソフト`を買い物カゴに入れたとします。
`参照した、上の文章の通り`であれば、
別のページに移動したとき、本来ならば、`買い物カゴ`にスマブラは`無い`です。
しかし、`実際`には、別のページに遷移したとしても、
買い物カゴに`スマブラソフト`が入った状態が保持されています。
これをセッション
とクッキー
が実現しているというわけです。
セッション
セッションとは、
Webサービスにおいて情報を一時的に記憶しておく仕組み・概念
です。
特徴は、
① サーバーサイド側で保存される
② データの改竄の可能性は低い
③ 情報を取り出す際には、sessionIDをサーバーに送信する必要がある
(そのため②の特徴があるとも考えられる)
ログインしたユーザーが、
Amazonでスマブラのソフト
をお買い物カゴに入れたとしますと、
そのスマブラソフトが入った状態を維持
できるようになっています。
情報を一時的に保存
し、保持
することで、
一度Amazonのサイトから離れても、
再度アクセス
したら、スマブラソフトが入ったまま
買い物を再開できるということです。
(sessionIDを元に、情報を返すイメージ)
クッキー
クッキーとは、
ブラウザにあるセッションの情報の保存場所のこと
です。
特徴は、
① クライアント側に値を保存する
② データ改竄の可能性あり
- IDなどではないため、悪意のある人が個人情報を抜き取ってしまう。
- セッションと一緒に使うことで、データ改竄の可能性や情報漏洩のリスクを激減させる。
先ほどの、Amazonの買い物カゴに、
スマブラソフトが入った情報を保存する場所が、クッキー
ということですね。
以上です。
終わりに
記事を書き終えて思いましたが、
絵や図がないと分かりづらいかもしれないですね。
勝手に使うわけにもいかないので、
いい記事を書くための工夫を考えて行けたらと思います。
以下参考サイト/YouTube動画です。
セッションとクッキーの違い
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
セッション管理の周辺知識まとめ
↓個人的にオススメ
Cookieとセッションってなに?ゼロからわかりやすく解説
明日も頑張ります!