web-dev-qa-db-ja.com

Tomcatは内部でセッションをどのように処理しますか?

私の理解では、サーブレットコンテナは、次のようなHTTPプロトコルを使用してセッションを処理します。

  1. 非表示のフォームフィールド
  2. URL書き換え
  3. クッキー

Apache Tomcatがセッションを内部的に処理する方法に興味がありますが、平均的な開発者には関係ありません。

TomcatはCookieやその他も使用していますか?

20
Mawia

デフォルトでは、TomcatはHTTP応答でSET COOKIE:JSESSIONID....などのCookieをブラウザに直接送信し、最初の要求に対してJSESSIONIDパラメータを追加するようにURLを書き換えて、フォールバックできるようにします後者の場合、クライアントブラウザでcookiesが無効になっています。

次にブラウザがJSESSIONIDrequestに含まれるサーバーを要求すると、TomcatはJSESSIONID Cookieを使用してセッションを維持します。

context.xmlを変更して、TomcatのセッションCookieの動作を上書きできます。

<Context cookies="false">
</Context>

同じ方法でURLの書き換えを無効にします。

<Context disableURLRewriting="true">
</Context>

これを読んでも Cookieを使用したサーブレットセッショントラッキング(JSESSIONID)

13
NINCOMPOOP

Tomcatは、ユーザーがブラウザーからブロックしない限り、デフォルトでCookieを送信します(ただし、この方法はお勧めしません)。さらに、作成されたセッションCookie(JSESSIONID)は永続的なCookieではなく、ブラウザーのインスタンス(ウィンドウ)が閉じられるたびに無効になります。

0
tariq khan