Wildfly(Undertow)有时在URL中包含jsessionid

问题描述 投票:0回答:1

我的环境:

  • Wildfly 14
  • 浏览器Firefox(启用Cookie / JavaScript)
  • 使用response.encodeURL编码链接的URL的简单Webapp
  • web.xml:无会话跟踪设置

有时链接的URL包含jsessionid请参见以下内容:

<a href="/VocabDB-1.0/MyVocab/Index;jsessionid=UGGha-TULRrZNFqQdtqdVlpBQQEDE-WwRrj4l78P.gpcit2ua7371tv9">Test Link</a>

大多数时候链接是

<a href="/VocabDB-1.0/MyVocab/Index">Test Link</a>

有什么想法吗?谢谢!

jsp servlets wildfly jsp-tags undertow
1个回答
0
投票
这完全正常:在第一个请求上,服务器不知道客户端是否接受cookie,因此它发送cookie

and,并且还将会话ID存储在URL中。

在第二个请求上,如果它从cookie接收到会话ID,它就知道该会话不再需要将其添加到URL,因此停止这样做。

也就是说,顺便说一句,javadoc of encodeURL已经解释了:

通过包含会话ID对指定的URL进行编码,或者,如果不需要编码,则返回不变的URL。此方法的实现包括确定会话ID是否需要在URL中编码的逻辑。例如,如果浏览器支持cookie,或者关闭了会话跟踪,则不需要URL编码。

为了进行可靠的会话跟踪,应通过此方法运行servlet发出的所有URL。否则,URL重写不能与不支持cookie的浏览器一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.