JSESSIONID 是如何传递的?作为标头参数还是作为 cookie 参数?
Posted
技术标签:
【中文标题】JSESSIONID 是如何传递的?作为标头参数还是作为 cookie 参数?【英文标题】:How is JSESSIONID passed? As a header parameter or as a cookie parameter? 【发布时间】:2017-12-27 12:48:52 【问题描述】:用户通过身份验证后,该用户的后续请求无需再次进行身份验证。这是使用 JSESSIONID 实现的。 但我不确定的是,JSESSIONID 是如何传递的?作为标头字段或 cookie 字段。或者由应用程序开发人员选择其中一种方法。
有人可以解释一下当 spring-security 用于身份验证和授权时这是如何工作的。
【问题讨论】:
一个cookie字段是一个头字段。 知道了 - 它是几个可能的标题字段中的字段之一。谢谢。参考 - en.wikipedia.org/wiki/List_of_HTTP_header_fields 【参考方案1】:JSESSIONID 对于特定用户将是相同的,除非并且直到用户会话被销毁。如果您想将相同的会话设置回用户,您可以从 HttpServletRequest 获取 JSESSIONID 并将其设置为 HttpServletResponse。这就是内部发生的事情。
每个请求都与会话相关联,您的应用程序将由具有不同会话的不同用户访问。
如果在任何情况下您的用户的浏览器丢失了 JSESSIONID,但您希望他继续使用您的应用程序,则必须进行设置。
默认情况下,JSESSIONID 存储在您的 cookie 中,这就是您清除 cookie 时将退出您已登录的所有应用程序的原因。
【讨论】:
【参考方案2】:JSESSIONID是J2EE标准定义的cookie,与其他cookie一起在cookie HTTP Header中传递,其值遵循[cookie1]=[value1]的格式; [cookie2]=[值2]; ...
例子:
Cookie: userLocale=en; userTimezone=Europe/Berlin; JSESSIONID=DCFE1E7FB2C6BFFDD5153B7C79B9CEED; _ga=GA1.1.1774863087.1561033937
【讨论】:
【参考方案3】:它将被发送为
Cookie:JSESSIONID=某事; customCookie=某些东西
在标题中
【讨论】:
以上是关于JSESSIONID 是如何传递的?作为标头参数还是作为 cookie 参数?的主要内容,如果未能解决你的问题,请参考以下文章
在 SOAP UI 请求中将 cookie 作为请求标头发送以获取 REST Web 服务
python接口自动化-参数关联和JSESSIONID(上个接口返回数据作为下个接口请求参数)