gpt4 book ai didi

java - 设置传入 httpServletRequest 的 cookie 版本

转载 作者:行者123 更新时间:2023-12-01 15:12:30 26 4
gpt4 key购买 nike

我有一个客户端正在向我发送带有逗号分隔值的版本 1 cookie。这在 cookie 的版本 1 中应该可以,但在版本 0 中不允许。

这就是 cookie

test.cookie=1,1

现在,当我读取 Cookie[] cookies = request.getCookies[] 时,我会返回 2 个这样的 cookie:

test.cookie=1
1=

因此,它将 cookie 的值视为下一个 cookie 的分隔符,这正是您在 cookie 版本 0 中所期望的。所以问题是我可以在读取 HttpServletRequest 中的 cookie 之前设置传入 HttpServletRequest 的 cookie 版本吗?

我知道有一个 Cookie.setVersion(int) 方法,但这对我来说没有用,因为我没有设置容器的 cookie。 (这实际上可能是在容器中设置 cookie 版本的线索,我现在就去看看)

编辑我解决这个问题的方法是只读取 header ,然后读取 Cookie header 的值(以分号分隔列表形式出现),然后自己解析每个 cookie 名称值对,因此 cookie 值中的逗号是然后正确保存,我只得到一 block cookies 。不过,很高兴知道是否有办法使用 HttpServleRequest.getCookies() 来做到这一点。

最佳答案

根据RFC2965RFC2109 , 字符在值字段中使用时需要用引号引起来,即 ","。这将帮助您暗示逗号是否用于分隔两个 cookie 或者在值中具有含义。以我的理解RFC6265 , 根本不允许。

关于java - 设置传入 httpServletRequest 的 cookie 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12141844/

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