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



我的环境:

  • 野蝇14
  • 浏览器Firefox(启用Cookie/JavaScript)
  • 使用response.encodeURL对链接的url进行编码的简单Web应用程序
  • 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>

有什么想法吗?谢谢

这很正常:在第一个请求时,服务器不知道客户端是否接受cookie,所以它发送一个cookie它还将会话ID存储在URL中。

在第二个请求中,如果它从cookie中接收到会话ID,它就知道不再需要将其添加到URL中,因此停止执行此操作

顺便说一句,encodeURL的javadoc已经解释过了:

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

对于健壮的会话跟踪,servlet发出的所有URL都应该通过该方法运行。否则,URL重写不能用于不支持cookie的浏览器。

相关内容

  • 没有找到相关文章

最新更新