Java无法读取node.js设置的Cookie

经调查,问题出在node.js设置的一个Cookie的key中含有冒号(:),如

app:sess=jjdkew909cv0klwlwk0909dsll3

替换冒号(:)后,解决问题,修改后如下:

app_sess=jjdkew909cv0klwlwk0909dsll3

原因

Cookie的格式有2个不同的版本,第一个版本,我们称为Cookie Version 0,是最初由Netscape公司制定的,也被几乎所有的浏览器支持。而较新的版本,Cookie Version 1,则是根据RFC 2109文档制定的,放宽了很多限制. 上面所限制的字符都可以使用. 但为了保持兼容性, 应该尽量避免使用这些特殊字符。为了确保兼容性,JAVA规定,前面所提到的涉及Cookie的操作都是针对旧版本的Cookie进行的。而新版本的Cookie目前还不被Javax.servlet.http.Cookie包所支持。

HTTP 1.1规范中规定的特殊字符

separators    =   "(" | ")" | "<" | ">" | "@"
                      | "," | ";" | ":" | "\" | <">
                      | "/" | "[" | "]" | "?" | "="
                      | "{" | "}" | SP | HT

参考文章

猜你喜欢

转载自blog.csdn.net/yirentianran/article/details/80083399