ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

セッションIDとクッキーの設定法、取得法

2005-02-09 13:10:11 | JavaとWeb
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の値を参照すれば、取得

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする