根据我的理解,Servlet Containers使用一些HTTP协议来处理会话,例如
我很好奇 Apache Tomcat 如何在内部处理会话,尽管它与普通开发人员无关。
Tomcat也使用cookies或其他吗?
答案 0 :(得分:13)
默认情况下,Tomcat直接将HTTP响应中的cookie(如SET COOKIE:JSESSIONID....
)发送回浏览器,并重写URL以在第一个请求中添加JSESSIONID
参数,以便它可以如果在客户端浏览器中禁用了 cookies ,则可以使用后者。
下次如果浏览器在其JSESSIONID
中请求request
的服务器,Tomcat将使用JSESSIONID
cookie来维护会话。
您可以通过修改 context.xml 来覆盖Tomcat中的会话cookie行为:
<Context cookies="false">
</Context>
并以相同的方式禁用网址重写:
<Context disableURLRewriting="true">
</Context>
答案 1 :(得分:0)
Tomcat默认发送cookie,除非用户从浏览器中阻止它们(尽管不鼓励这种做法)。此外,创建的会话cookie(JSESSIONID)不是持久性cookie,只要浏览器的实例(窗口)关闭,它们就会消失。