webサーバーとブラウザ間には、物理的な接続状態は存在しない。
一回のみのデータのリクエスト・レスポンスしかHTTPには存在しない
[]https://ips.nekotype.com/2441/
1.Cookie とセッションの違い
ID・パスワード等、別の画面に偏移しても必要なデータ、その場合に使用されるのが、
Cookieやセッション。
・Cookie=webサーバーが発行、ブラウザが保持するキーと値
ブラウザは同じサイトにアクセスする際にはそのCookieをWeb サーバーに送信
webサーバーはブラウザからのリクエスト毎にその値を参照する事が可能
・セッション=webサーバーで保持するキー
IDやパスワードなどを毎回ブラウザから送信してはセキュリティ的にも問題
ログインアクションにより、webサーバー側ではセッションとして値を保持し、
ブラウザへはCookieを送信する。
ブラウザから再度アクセスがあれば、送信されたCookie情報を元にwebサーバーは
対応するセッション情報があるかを判断。
重要:Cookie=ブラウザに保存される セッション=webサーバーに保存される
キーと値を持つデータ(=ファイル)
2.CookieとセッションCookieの違い
Cookie=ファイルとして保存しているので容易に参照可能。
セッションCookie=ブラウザに保存
然し、ファイルではなく、メモリーに保持している。
そのため、セッションCookieはブラウザを閉じれば破棄される。
Cookieも有効期限はあるが、ブラウザを閉じてもなくならない。
一度ブラウザを閉じれば再度ログイン画面に戻る、といった動きに使用できる。
3.確認方法
Cookie:
XP:\Documents and Settings(ユーザー名)\Cookies
Vista:C:\Users(ユーザー名)\AppData\Roaming\Microsoft\Windows\Cookies
等…
セッションCookie:
javascript:document.cookie;
と入力。
そのサイトでセッションCookieを使用していれば確認可能。
ただし、CookieかセッションCookieかの判別は簡単にはにできない。
Cookieファイルにない情報が送信されていれば、それがセッションCookie
... :x001:
セッション:
サーバー側にあるので開発者しか分からない。
phpの場合、デフォルトで
/var/lib/php/session
にファイルとして保存されている。
4.その他
セッション情報はサーバーにファイルとして保存されてしまう。
〜複数のwebサーバーで負荷分散している場合、別のwebサーバーにアクセスすれば
セッションは無い。
ロードバランサーで負荷分散している場合、注意が必要。
いち解決策、それぞれのwebサーバーにセッション情報を保存するのでなく、
データベースにセッション情報をもつということが考えられる。
ブラウザを閉じた場合、再訴ログイン画面に戻すことはセッションCookieで実現可能。
戻るボタンを押下した場合、エラーや不正なページ偏移として処理するには
ブラウザのキャッシュをOFFにする
[]参考: