Chrome开发者工具Network标签页中观察到的set-cookie jsessionid是什么东西

在Chrome开发者工具里经常能观察到HTTP响应里包含的字段:

Set-Cookie: JSESSIONID= XXX

Chrome开发者工具Network标签页中观察到的set-cookie jsessionid是什么东西_第1张图片

之后,就能在客户端cookie里观察到JSESSIONID=后面的值。

Chrome开发者工具Network标签页中观察到的set-cookie jsessionid是什么东西_第2张图片

根据Google搜索的结果:
https://javarevisited.blogspot.com/2012/08/what-is-jsessionid-in-j2ee-web.html

这篇博客有详细介绍:
Chrome开发者工具Network标签页中观察到的set-cookie jsessionid是什么东西_第3张图片

What is JSESSIONID in JSP-Servlet

JSESSIONID是由Servlet容器比如Tomcat或Jetty等生成的,用于基于HTTP协议的J2EE web应用中进行session管理。

因为HTTP是一种无状态的协议,Web服务器无法区分来自同一个客户端的两个不同请求,因此需要Session管理机制,具体实现有Cookie和URL Rewriting等。

JSESSIONID is a cookie generated by Servlet containers like Tomcat or Jetty and used for session management in J2EE web application for HTTP protocol. Since HTTP is a stateless protocol there is no way for Web Server to relate two separate requests coming from the same client and Session management is the process to track user session using different session management techniques like Cookies and URL Rewriting.

采用Cookie会话管理的服务器会在客户端第一次请求时生成JSESSIONID,然后返回给客户端。客户端随后每次请求都会把这个JSESSIONID附在HTTP请求头部。

比如我们下面这个例子,是不是看到了前面出现在HTTP response set-cookie字段里的JSESSIONID值,在第二个接下来的请求里出现在HTTP request field上了?

Chrome开发者工具Network标签页中观察到的set-cookie jsessionid是什么东西_第4张图片

If a Web server is using a cookie for session management it creates and sends JSESSIONID cookie to the client and then the client sends it back to the server in subsequent HTTP requests. JSESSIONID and session management is a not only a popular Servlet interview question but also appear in various JSP interviews. Along with What is JSESSIONID interviewer are also interested in when and howJSESSIONID is created in Servlet and JSP which we will see in next section.

如果客户端浏览器禁掉了cookie,那么服务器仍然可以生成JSESSIONID,只不过以URL重写的技术,把这个JSESSIONID值传回客户端:

https://localhost:8443/supermart/login.htm;jsessionid=1A530637289A03B07199A44E8D531427

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

你可能感兴趣的:(Cloud)