セッションIDの取得の必要性について

このQ&Aのポイント
  • Webアプリケーション制作において、セッションIDの取得は必要なのか疑問に思いませんか?
  • セッションIDの役割や必要性について詳しく解説します。
  • セッションIDを取得する必要はない場合もあるので、目的に応じて判断しましょう。
回答を見る
  • ベストアンサー

セッションIDの取得の必要性

セッションIDの取得の必要性について教えてください。 Webアプリケーション制作で、 セッションIDは必ず取得しないといけないものなのでしょうか? セッションIDの役割とはなんなのでしょうか? 何が必要でこのセッションIDは存在しているのでしょうか? 参考URL  http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000817.html 内容を読んでみたところ 「このセッションIDを直接取り扱うことはないだろう。」とも書かれているのですが^^; 「セッションオブジェクトに値を設定する」などという目的の場合には、特別、セッションIDは取得しなくても構わないでしょうか?

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#94983
noname#94983
回答No.1

セッションIDとは、文字通りセッションごとに割り当てられるIDのこと。 クライアント(要するにブラウザ)からサーバーにアクセスしたとき、ユーザーを特定して処理を行う場合にセッションが用いられる。たとえばショッピングのサイトなどを考えた場合、あるユーザーが買い物をしたとき、サーバーでは、「それがどのユーザーか」ということがわからないといけない。サーバーでは、同時に多数のクライアントがアクセスしてくるわけで、それを「これは○○さん」「これは××さん」と識別する必要がある。 そこで、アクセスしてきたユーザーごとにIDを割り当て、次にアクセスしたときにこのIDを一緒に送信するようにしておく。するとサーバーでは、受け取ったIDをチェックし、「このIDはこの人だ」と識別することができる。これがセッションの考え方で、セッションIDそのものは、セッションという機能を実現するためにシステムがほぼ自動的に割り付ける。たとえばJavaの場合、セッションを利用するとサーブレット内で自動的にセッションIDを発行したり、送られてきたセッションIDをチェックしてセッションを識別するような処理を内部で行っている。だから、プログラマ自身が直接セッションIDを操作するわけではなく、「セッションという機能を実現するために、内部的にセッションIDが使われている」と考えたほうがいい。 ただし、もちろん自分自身でセッションに応じた処理などを実装する場合には、独自にセッションIDを取得し処理するようなこともある。まったくないわけではないが、普通にセッションを使うだけなら使うことはない、ということ。

Guno-this
質問者

お礼

どうもありがとうございます。 セッションIDについて把握できてきました。 すみません、 「このIDはこの人だ」とういところをもう少し突っ込んでお伺いしたいのですが、 例えばそれは、こういう内容になるのでしょうか? 「IEというブラウザからアクセスしてきている、IPアドレス○○○番の人はこの人だ」(ID認識する) 「IEというブラウザからアクセスしてきている」という情報では、ユーザーを一意に特定できないと思い、一意に特定する情報としてほかに「IPアドレスが必要なのではないだろうか」と思ったのですが。 一度、ID認識したサーバーは、 以降「ID認識した状態(IEというブラウザからアクセスしてきている、IPアドレス○○○番の人はこの人だ)」という情報が、 セッションタイムアウトなどによって、情報の消去が行われない限りの間は、“値を保持した状態が続いている” ということなのかなと、考えたのですが 間違っていませんでしょうか?

関連するQ&A

  • publicフィールドの使いどき

    http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000130.html このサイトには「フィールドは特別な場合を除き全てprivateにし」と書いてありますが、 特別な場合とは具体的にはどのような時ですか?

    • ベストアンサー
    • Java
  • XMLHTTPを使って、セッションIDを取得したいのですが

    VBでXMLHTTPを使って、Webサーバ(IIS)へアクセスを行なっていますが、機能的に、 現在のセッションIDを取得する必要があり、XMLHTTPモジュールをいろいろ 試してみましたが、取得できませんでした。 getAllResponseHeadersでは、ヘッダー部のみですし、getResponseHeaderでは、 ヘッダー部を切り出すだけですし、responseTextでは、HTMLの本体のみで、 肝心なセッションIDが取得できません。 どなたか、コーディング例を示して頂けないでしょうか? 宜しくお願い致します。

  • Sessionについて

    Session管理について以下のページを参考にしました。 http://www.atmarkit.co.jp/fjava/javafaq/session/session04.html あるServletにおいて、(1)セッション開始後、 ( HttpSession session = request.getSession(true);) (2)セッションに値を格納・・・また、違うServletで (3)そのセッションに格納された値を取得・・・ といったやり方が載っていました。 よく、セッション管理についてまだ分かってないところが あるのですが、・・・ たとえば、Aサーブレットでセッションを開始し、 セッションに値を格納・・・・とします。 そのセッションに入れる値。。。というのを 「顧客ID」と「処理CD」の2つにしたい場合はどのような 記述になるのでしょうか?? 参考にしたページには //セッションに値を格納 UserInfo userInfo = new UserInfo(...); session.setAttribute("USER_INFO", userInfo); こんな感じで書いてるんですが、 これは、USER_INFOというキーワードでuserInfoを 値としてセットするということですよね? 顧客IDと処理CDを記述するときは、なにか それぞれオブジェクトが必要なんでしょうか?? よくわかってないです。 ・・・・すみません。よく意味がわかってないので 質問内容も中途半端だと思うのですが、 セッション管理について教えてください。

  • 画像の切り替えについて

    http://www.kab-studio.biz/Programing/AjaxEroge/20050822a/index.html これを使わせてもらっているのですが、ボタンをクリックして画像を読み込んだときにページを一番上に戻す(移動する)というような事はできないでしょうか?

  • 引数の概念について質問

    引数とは、以下のURLに次のように定義されていました。 「メソッドを呼び出す際に渡された値を受け取る変数。」 http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000160.html 質問:引数とは、「あるメソッドに入力する(渡す)値」ですよね?それなのに、「メソッドを呼び出す際に渡された値を受け取る変数。」とかいてありますが、これはどういうことですか? java初心者の私でもわかりやすいように解説してくだされば幸いです。 質問2:上記URLに以下のようなことも書かれていました。 「呼び出す際に「メソッド名( 引数に渡す値 );」という書式で「引数の変数」に「引数に渡す値」をコピーすることができる。 このコピーは、変数の代入と全く同じである。」 これもよく意味がわかりません。 とくに、「引数の変数」という記述がよくわかりません。また、なぜ変数の代入と同じなのですか? うーん、、よくわからない。

    • ベストアンサー
    • Java
  • ServletでSessionの一覧を取得

    ServletでSessionの一覧を取得を取得し、 選択したセッションIDを無効するという画面を作成したいと 思っています。 ↓下記URLではServlet API v2.1 以降で廃止されたとあります。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=401&forum=12 しかしながらTomcatの管理画面(Tomcat Webアプリケーションマネージャ ) http://localhost:8080/manager/html の画面ではセッションという項目があってそこをクリックするとまさに やりたかったことが実現されています。 なにか特殊な方法を使用して作成しているのでしょうか。

    • ベストアンサー
    • Java
  • セッションオブジェクトの使い方(次画面の渡し方について)

    セッションオブジェクトの渡し方について教えてください。 セッションオブジェクトは、どのタイミングで、次の画面にセッションオブジェクトを渡しているのでしょうか? ▼リクエストオブジェクトを次の画面に渡す場合 request.setAttribute("キー" , 格納したい値); という風に、リクエストオブジェクトの中に値をセットできると思います。 そして、  ・RequestDispatcher rd = request.getRequestDispatcher("画面遷移先URL");  ・rd.foward(request, response); これが実行されたタイミングで、requestオブジェクトに格納した情報を、次の画面に渡していると思いますが ▼セッションオブジェクトを次の画面に渡す場合 いったいどこでセッションオブジェクトを、次の画面に渡しているのでしょうか? セッションの値の入れ方としては session.setAttribute("キー" , 格納したい値); という形でセッションオブジェクトに対して、値を格納しているのだとは思いますが・・・ ここでセットした値を、 どうやって、次の画面にもっていっているのでしょうか? 【不思議に感じているところ】  1.セッションオブジェクトを生成する  2.セッションオブジェクトの中に、値を格納する  3.rd.foward(request, response); で次の画面にリクエストを投げる  4.次の画面で「セッションオブジェクトは飛ばしていない筈なのに、セッションオブジェクトの中には値が格納されている」  うーん・・・  一体どこで、次の画面にセッションオブジェクトを渡しているのでしょうか?

    • ベストアンサー
    • Java
  • Ajaxにおけるセッション

    会社の先輩から 「Ajaxを使ったWebページはセッション(※セッションIDのことを短縮して言ったのかは不明)を持ち続けてしまうことが問題」 と言われたのですが、これは正しいのでしょうか? XMLHttpRequestのオブジェクトから常にopen、sendし続けているのであれば セッションを持ち続けるかもしれませんが、 例えばopen、sendをページのロード時にたった一回しかつかわないページであれば、 最初のreadystateの値が4になった時点で(もう二度とXMLHttpRequestのオブジェクトからはリクエストしないので)コネクションは切れて 放っておくとセッションIDは切れるのではないでしょうか? それともクライアント(ブラウザ)にXMLHttpRequestのオブジェクトが存在している限り、 セッションは切れずに保持されるのでしょうか? よろしくお願いします。

  • セッションについて。

    プログラミング初心者です。サーブレットを勉強しています。 同じオブジェクトがセッション上で使い続けられず、困っています。 あるJSPファイル内で、 <jsp:useBean class="kajitu" id="kajitu" scope="session"/> という記述をし、そのファイル内で、 kajitu = db.load(1);//戻り値として、kajituオブジェクトが戻ってくる。戻ってくるkajituオブジェクトはdbクラス内で生成し、値を入れたものが返ってくる。 という記述をし、kajituオブジェクトに値をいれた(つもり)のですが、遷移して次のページにいくと、kajituオブジェクトは空(初期状態)になっています。kajituオブジェクトについて、何かいじっている処理は上の操作以外に特にありません。 上記の処理は、まずいやり方でしょうか? よろしくお願いします。

  • PHPサイトでのセッション情報取得について

    PHPのサイトにて、ユーザーIDをJavaScriptの変数に渡す処理について質問です。 システム会社からユーザーIDが格納されている変数ということで下記の記述を教えていただきました。 「Session::getRegistry('uid')」 そこで、下記のようにjsを設定したのですが、値を取得できません。 <script type="text/javascript"><!-- uid='<? Session::getRegistry('uid'); ?>'; // --></script> 【質問】 1.「Session::getRegistry('uid')」という記述でデータを取得可能なのでしょうか? 2.もし、セッションの「uid」に値が格納されているとした場合、どのように記述したら上記のJavaScriptに値を渡せるでしょうか?

    • 締切済み
    • PHP

専門家に質問してみよう