私の理解では、サーブレットコンテナは、次のようなHTTPプロトコルを使用してセッションを処理します。
Apache Tomcatがセッションを内部的に処理する方法に興味がありますが、平均的な開発者には関係ありません。
TomcatはCookieやその他も使用していますか?
デフォルトでは、TomcatはHTTP応答でSET COOKIE:JSESSIONID....
などのCookieをブラウザに直接送信し、最初の要求に対してJSESSIONID
パラメータを追加するようにURLを書き換えて、フォールバックできるようにします後者の場合、クライアントブラウザでcookiesが無効になっています。
次にブラウザがJSESSIONID
がrequest
に含まれるサーバーを要求すると、TomcatはJSESSIONID
Cookieを使用してセッションを維持します。
context.xmlを変更して、TomcatのセッションCookieの動作を上書きできます。
<Context cookies="false">
</Context>
同じ方法でURLの書き換えを無効にします。
<Context disableURLRewriting="true">
</Context>
Tomcatは、ユーザーがブラウザーからブロックしない限り、デフォルトでCookieを送信します(ただし、この方法はお勧めしません)。さらに、作成されたセッションCookie(JSESSIONID)は永続的なCookieではなく、ブラウザーのインスタンス(ウィンドウ)が閉じられるたびに無効になります。