Webで、2つ以上の画面にまたがるとき、データを保持しておく方法である、
セッションIDと、クッキーのまとめです。
これ、あくまでも自分用のメモです。
実際に試してない(=ほんとに動作するか不明)のもあります。
------------------------------
<<目的>>
ブラウザで、セッションが切れても、前のデータを保持したい場合、
(=複数セッションを1トランザクションとするとき)
前のデータを、クライアント側にもつのが、クッキー
前のデータを、サーバー側にもつために使うのが、セッションID
<<セッションID>>
・しくみ
サーバー側にデータをもつ。したがって、クライアントは、そのデータの
ID(セッションID)をもらって、次回の接続のとき、それを渡せばよい。
セッションIDは、クッキーとして持つかまたは、URLとして持つ。
・PrelでのセッションID取得・設定
CGI::Sessionを使う
(まあ、ほかにもWalrus::Session::Liteとか、Apache::Session.pmとかも、あるみたいだけど)
・サーブレットでのセッション
開始 HttpSession session = request.getSession(true);
取得 HttpSession session = request.getSession(false);
で、セッションを取ったら
session.getAttribute(名前);
設定 session.setAttribute(名前 , 値);
終了 session.invalidate();
くわしくは、ここ
クライアント側で、セッションIDを知ることは可能だが、自動的に
ブラウザで、振ってくれるので、知ってもあまり意味がない
(ハッキングとかするのでなければ)
クッキーを利用できないクライアントの場合、セッションIDが、URL
に入ることもある。
<<クッキー>>
・しくみ
クライアント側でデータを持ち、サーバーにそのデータをわたす。
・perlでのクッキー取得・設定
クライアントが持っている値を、クッキーを使って取得するには、
サーバーの環境変数HTTP_COOKIEの値をみる
クライアントに、Cookieの値を設定したいのであれば、
CGIがprintで出すとき、ヘッダーにSet_Cookie:を入れる
・サーブレットでのクッキー
クッキークラスへ設定する。くわしくは、ここ
なお、クライアント側でも、クッキーの値は読み込めるし、設定できる
・たとえば、JavaScriptで、クッキー取得・設定
document.cookieに、値を設定すれば、設定、document.cookieの値を参照すれば、取得
セッションIDと、クッキーのまとめです。
これ、あくまでも自分用のメモです。
実際に試してない(=ほんとに動作するか不明)のもあります。
------------------------------
<<目的>>
ブラウザで、セッションが切れても、前のデータを保持したい場合、
(=複数セッションを1トランザクションとするとき)
前のデータを、クライアント側にもつのが、クッキー
前のデータを、サーバー側にもつために使うのが、セッションID
<<セッションID>>
・しくみ
サーバー側にデータをもつ。したがって、クライアントは、そのデータの
ID(セッションID)をもらって、次回の接続のとき、それを渡せばよい。
セッションIDは、クッキーとして持つかまたは、URLとして持つ。
・PrelでのセッションID取得・設定
CGI::Sessionを使う
(まあ、ほかにもWalrus::Session::Liteとか、Apache::Session.pmとかも、あるみたいだけど)
・サーブレットでのセッション
開始 HttpSession session = request.getSession(true);
取得 HttpSession session = request.getSession(false);
で、セッションを取ったら
session.getAttribute(名前);
設定 session.setAttribute(名前 , 値);
終了 session.invalidate();
くわしくは、ここ
クライアント側で、セッションIDを知ることは可能だが、自動的に
ブラウザで、振ってくれるので、知ってもあまり意味がない
(ハッキングとかするのでなければ)
クッキーを利用できないクライアントの場合、セッションIDが、URL
に入ることもある。
<<クッキー>>
・しくみ
クライアント側でデータを持ち、サーバーにそのデータをわたす。
・perlでのクッキー取得・設定
クライアントが持っている値を、クッキーを使って取得するには、
サーバーの環境変数HTTP_COOKIEの値をみる
クライアントに、Cookieの値を設定したいのであれば、
CGIがprintで出すとき、ヘッダーにSet_Cookie:を入れる
・サーブレットでのクッキー
クッキークラスへ設定する。くわしくは、ここ
なお、クライアント側でも、クッキーの値は読み込めるし、設定できる
・たとえば、JavaScriptで、クッキー取得・設定
document.cookieに、値を設定すれば、設定、document.cookieの値を参照すれば、取得