gpt4 book ai didi

java - 由带有双引号的应用程序服务器设置的 Cookie

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:06:32 26 4
gpt4 key购买 nike

我正在尝试在 Servlet 响应中设置值为 unkown#4?Wn5pZ1JwQnlLEGRJAgB4WQU%3D 的 cookie。

但是当我在浏览器中设置 cookie 时,它​​返回时会像这样用引号括起来:

“未知#4?Wn5pZ1JwQnlLEGRJAgB4WQU%3D”。

为什么会这样?我们使用 Jetty 作为应用服务器。

我会放上我写的代码

String cookieValue = "unkown#4?Wn5pZ1JwQnlLEGRJAgB4WQU%3D";
Cookie zedoCookie = new Cookie("cookiename", cookieValue);
zedoCookie.setMaxAge(31536000); // this is one year duration.
zedoCookie.setDomain("somedomain.com");
zedoCookie.setPath("/");
response.addCookie(zedoCookie);

有人可以解释一下吗?

我已经看过了 this .但它似乎并没有解决我的问题。

最佳答案

Jetty 8(或更早版本)似乎将以下字符视为 Cookie 中不允许的字符:"\\n\r\t\f\b%+ ;= ( HttpFields -> __COOKIE_DELIM). 如果这些字符之一包含在 cookie 的值中,则该值将在 HTTP header 中用双引号引起来。URL 编码并不能解决问题,从那时起你仍然会有 % 字符在里面。对我来说,这似乎是一个错误。我向 Jetty mailing list 发布了一个问题.邮件列表上还有另一篇文章,解释了为什么在 Jetty 9 版本中提高了 cookie 版本。

关于java - 由带有双引号的应用程序服务器设置的 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14626263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com