クッキーとセッション
ぼけ日は!電子の妖精むじぃくです。
今日はちょっとだけまじめな話。あらかじめ断っとくと、私の解釈間違ってるかもしれんので間違ってたら教えてくだせぇ。
みなさん、クッキーって知ってますか?ホワイトデーにバレンタインデーのお返しにあげるアレじゃないですよ。由比ヶ浜結衣ちゃんの飼い犬でもありません。セッションは知っていますか?バンドとかで音合わせするアレではありません。アメリカの映画でもありません。さて、この二つの違いとは何でしょうか?
「クッキーはブラウザを閉じても保持できて、セッションはブラウザを閉じると保持できない」
いくつかの記事にはこうある、もしくはこう認識されてもおかしくないような記述がある。でも、おかしいわけですよ。感覚と違うわけですよ。某フレームワークのセッションコンポーネント使ってるけど、普通にブラウザ閉じても保持してる挙動してるし。今まで、私はクッキーに鍵を持たせてそれをサーバー側で照合して諸々の情報自体はサーバーが持ってるんだと思っていました。そして、その仕組みがセッションだと。で、いままでフレームワークにいい感じに任せていた部分を解剖してみたわけですよ。
すると、どうも、
セッション
→サーバーで保持する情報
クッキー
→クライアント側で保持する情報
で、さらにクッキーには二種類あって
パーシステントクッキー
→ファイルとして保持(ブラウザ閉じても残る)
セッションクッキー
→メモリ上に保持(ブラウザ閉じたらなくなる)
があるみたい。
そして、セッションを扱うにあたってIDをクッキーに保持させてサーバーで照合させるのが一般的な模様。セッションとセッションクッキーを混同すると上記のような説明になっちゃうみたいですね。なにが気に入らないって私の何倍も経験長い人でも混同して会話してたりする所がね。
私の場合、超短期間で色々段階すっ飛ばして仕事してるからこんな基本的なこと知らんかったりするんよ。今日も、Linax鯖で秘密鍵と公開鍵発行してssh接続できるようにするだけなのにえらい手間取ったし。
なんか技術者のブログみたいですね。次回はもっとちゃんとしょーもないこと書こうと決心しました。それでは今日はこの辺で。ノシ
追記
おいてめこらなんで前回の俺の日記が二回も投稿されとんじゃ!投稿時刻見たら昨日のおおみちさんの投稿時刻と一緒やし!俺が間違えて二回投稿したみたいになっとるけど絶対犯人お前やろ!なにがじゃぱりぱーじゃゴルァ!