- ベストアンサー
セッションIDについての質問です。
サーバ・クライアント間での【コネクション】が途切れた際にも、【セッション】は維持されているそうですが、それは”Cookie”によって叶えられているのでしょうか?
- codotjtp
- お礼率43% (242/557)
- その他([技術者向] コンピューター)
- 回答数1
- ありがとう数3
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
(1)タブブラウザを使って,複数のタブ(タブ1,タブ2 とします)を開き, ログインが必要な同一Webサイトに複数のタブ画面からアクセスします。 (2)タブ1 画面でログインなりログアウトなりの操作をおこないます。 (3)タブ2 画面を最新の状態に更新します。 タブ2 においてログイン/ログアウト操作をおこなっていないにもかかわらず, (3)におけるログイン状態が(2)に追随して変化するようであれば, そのWebサイトへのアクセスが一連のセッションであることを管理しているデータは, すべてのタブが共通に参照するデータ,すなわち,タブブラウザ内全体として管理しているcookieデータである可能性が高いと推理できるでしょう。 関連Q&A: http://okwave.jp/qa/q6761962.html (JidousyaGaisyaさんの質問) http://okwave.jp/qa/q6761884.html (codotjtpさんの質問) http://okwave.jp/qa/q6758717.html (YaGhoogleさんの質問)
関連するQ&A
- ソケットとセッション
セッションを維持させた儘で、コネクションだけが途切れた場合には、セッションを保つ為に、どういう仕組みでサーバが管理しているのでしょうか? コネクションの場合には、メインメモリ上のソケットが割り当てられているのだろう、と思われますが、セッションの場合には別の手段が適用されているのだろう、と思われますから、教えて下さいませ。
- ベストアンサー
- その他([技術者向] コンピューター)
- WebクライアントでDBセッションを維持させたい
C/S系システムをWebシステムに移行することを考えてます。 Webクライアントにおいて、アプリでログイン後にDBセッションをずっと保持させたままにしておきたいのです。(WebクライアントとDBセッションを1対1にしたい) APサーバ上でコネクションプーリングしてDBとのセッションを維持させておくことは知ってます。 実現方法や、実現された事例等がありましたら教えて頂けないでしょうか? DBはORACLEを利用してますが、 Webクライアントと dbms_session.unique_session_id を一意に定めたいのです。
- ベストアンサー
- その他(プログラミング・開発)
- 擬似クライアントプログラムでセッションを認識させたい
サーブレットでのセッションの扱いは、クライアントにセッションIDをCookieとして保存しておき、次回以降のアクセスではクライアントからそのIDをサーバに通知することにより、セッションを維持するという仕組みですよね。 そこで、以下のようなコードを含むクライアントプログラムを動作させました。 // cookieのハンドリングにCookieManagerを設定 CookieManager cookieManager = new CookieManager(); CookieHandler.setDefault(cookieManager); HttpURLConnection conn = ... // 1度目の通信 conn.disconnect; conn = ... // 2度目の通信 conn.disconnect; この状態でHttpURLConnectionを使用してサーブレットと通信を行うと、CookieHandlerが自動的にCookieのやりとりを行ってくれるため、セッションIDのやりとりについても自動化してくれて、サーバとの通信でセッションが確立できるはずです。(この情報の信頼性がいまいちです) しかし、私が試した限りでは、セッションは保持されませんでした。 擬似クライアントの変わりにブラウザで試してみましたが、きちんとセッションは認識されるので、サーブレット側の問題ではありません。 また、CookieManagerはcookieをメモリ上に保存しますが、擬似クライアントは同一VM上で複数回の接続を試しています(よって揮発している可能性はありません)。 そして、サーブレット側で(セッションではなく)cookieを意図的に食べさせた場合には、きちんとその内容を復元することができます。 セッションやCookieManager等についての私の認識が誤っていることが原因だと思うのですが、おかしなところがあればご指摘お願いします。
- 締切済み
- Java
- セッションIDの削除について
session_set_cookie_params(1ヶ月); session_start(); を行った場合、webサーバーの/tmp内の 『sess_*****・・』 ファイルは、(ガーベッジ・コレクションを行わない場合)1ヶ月の有効期限が切れると、自動削除されるんでしょうか。
- 締切済み
- PHP
- IIS 有効なセッションIDの取得について
お世話になります。 表題につきましてご教授願います。 現在、 Windows2003 IIS6 ASP にて、社内システム構築中です。 ある、機能でセッションIDをフォルダ名としサーバー上にフォルダ を作成しております。 そこで質問ですが、サーバーが振ったセッションIDの中で、(サーバー から見た)現在有効なセッションIDを取得することは可能でしょうか。 クライアント側で既にブラウザを落としている(セッションが切れている) 場合は、作成されたフォルダを削除したいと考えているのですが、その際、 有効なセッションIDが取得できれば、セッションが切れているIDのフォルダを 削除できるかな。。と考えている次第です。 以上、宜しくお願い致します。
- 締切済み
- Windows系OS
- CookieとセッションIDとの役割りの違いは?
このサイトの場合にも、 送信直後にエラーで再度のログインを要求されることが御座いますが、 ブラウザの画面を更新させますと、ログインを遣り直しませんでしても、 表示内容が正常化されていますので、恐らく何らかの形式で、 セッションが維持されているのではないか、と思います。 だから、教えて下さい。 「CookieかセッションIDかの内のどちらが、 接続の維持を叶えてくれているのでしょうか。」
- ベストアンサー
- その他([技術者向] コンピューター)
- セッションとクッキーの関わりについて
いつもお世話になりますm( __ __ )m 質問の前に前提条件としてセッションによるログインサイトなどは、以下のようなやり取りを行っていると認識しています。 1. サーバーからクライアントにセッション ID を発行する 2. クライアントのクッキーにセッション ID が保存される 3. 以降、クライアントがサーバーにアクセスするとクッキーに保存されているセッション ID が一緒にサーバー側に送信され、サーバー側で保存しているセッションデータと関連つける。 ここまで間違っていたらご指摘ください。 以下、質問です。 上記の仕組みを PHP などを用いて既存のセッション関数を使わず自作するとした場合、以下のシーケンスで同等と考えてよろしいでしょうか? 1. サーバー側で乱数などを用いてセッション ID を独自に生成する 2. Set_Cookie 関数などでクライアントのクッキーにセッション ID を保存する。 3. 以降、クライアントのクッキーからセッション ID を取得し、サーバー側でその値を元に DB などから値を取り出す。 私には前者と後者が全く同じ処理に見えるのですが、違うのでしょうか。それとも同じなのでしょうか。と言ったところが聞きたいと考えています。 以上です。 よろしくご教授くださいm( __ __ )m
- ベストアンサー
- ネットワーク
- セッションIDの保存場所について
オンラインショッピングサイトや、SNSサイトなどのWebシステムで クライアントの状態を保持するセッション情報を識別するためのセッションIDは、 アプリケーションサーバーの中にあるセッション情報を持つインスタンスの中に持たせておくものなんでしょうか、それともDBに入れていったん永続化してしまうものなんでしょうか。
- ベストアンサー
- SE・インフラ・Webエンジニア
- sessionとcookieの設定内容の区別
セッションとクッキーの使い分け方法を教えていただけないでしょうか? 簡単に言えばセッションがサーバサイド、クッキーがクライアントサイド、 セッション内容はブラウザ切れば消える(残すことも出来る)、クッキーはブラウザに残る、 と言うことは分かっているのですが、実装の仕方が分かりません。 例えばログインフォームでは$_SESSION['name']、$_SESSION['password']を回す・・・というのは分かります。 認証が終われば$_SESSION['name']、$_SESSION['password']は破棄して$_SESSION['login']=TRUE等を使うのではないかと思っております。 (そうではなくて、認証後は全て$_COOKIEで処理するのでしょうか?) で、$_COOKIEにはsessionIDが入っていると。 しかしながら、ブラウザ切っても暫くしてまたサイトを訪れたときにログイン状態が続くようにするにはどのようにすればいいのでしょうか? $_COOKIEにその情報を格納するのだと思うのですが、例えば$_COOKIE内にユーザidやlogin=OKのような文字を入れているとブラウザから見えてしまいます。 勿論ハッシュ化をして簡単には把握できないでしょうが、ここにはどんな情報が格納されているのか見当も付きません。 具体的な$_SESSION、$_COOKIEに入れるものと、サイトでの各々の実装法を教えていただけないでしょうか?
- ベストアンサー
- PHP
お礼
私の説明が不足しているからなのだろう、と思われますので、大変に畏れ入りますが、逆の内容の様です。 つまり、セッションを維持させた儘で、コネクションだけが途切れた場合には、セッションが切れずにサーバ側で管理されているのか否かを知りたい、と願っていますから、教えて頂けないでしょうか? http://okwave.jp/qa/q6770565.html
補足
有り難う御座います。 助かりました。