- - PR -
TOMCATのセッション設定
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-02-02 17:21
いつもお世話になっています。
TOMCATのセッション設定について教えて頂けないでしょうか? TOMCAT+STRUTS+IE6で開発テストしています。 コンテキストプロパティのクッキーを設定をTrueにして、 IEのクッキーを許可しない状態でもセッションが問題なく 使用できてしまいます。Falseに設定するとURL riwritingに なるのは確認できています(URLに表示されます)。 サーバとIEのテストマシンも別々で行っています。 (質問1) なぜ、コンテキストプロパティのクッキーを設定をTrueにして、 IEのクッキーを「すべてのクッキーをブロック」にしているのに セッションが問題なく使えるのでしょか? (質問2) また、コンテキストプロパティのクッキーを設定をTrueにして、 IEのクッキーを使用可能な状態にしても、一発目は必ず、URLに gsessionidが表示されます。なぜでしょうか? 消す方法はあるのでしょうか? よろしくお願いします。 |
|
投稿日時: 2006-02-02 17:37
1)クッキーをブロックしてもセッションが使える理由
URL rewriting ベースでセッションを維持しているからです。 クライアントが毎回クッキーを送る変わりに、リンクに含まれる ;JSESSIONID=??? という部分でどのセッションにひもつくリクエストであるかを判断しています。 2)URLにセッションIDが含まれる理由 URLを算出する箇所で response.encodeURL(url)などとしているはずです。 初回アクセス時はブラウザがセッションIDのクッキーを送ってきません。まだセッションが作成されていませんので。 サーブレットコンテナとしてはクッキーを送ってこないブラウザが今後クッキーを受け入れてくれるかどうか知る由がないのでひとまずクッキーを送りつつ URL 書き換えも行うわけです。 2度目以降のアクセスではクッキーが送られてくるので、じゃぁ URL 書き換えは必要ないなと判断するわけですね。興味があれば Tomcat の encodeURL の実装部分を見てください。 で、必ずURL書き換えを行わせたくないのであればそういう設定があるかと思います。 たぶんデフォルトで on になっているのではないでしょうか。 まぁ encodeURL をしない、という消極的な対応方法もありますがあまりお勧めしません。 |
1