正在打电话
HttpServletResponse.addCookie();
Run Code Online (Sandbox Code Playgroud)
(来自servlet-api-2.5)多次使用同名的cookie安全吗?
从某种意义上讲是安全的,有一种确定性的行为,例如后续的调用将被忽略(第一次获胜)或后续的调用将总是取代cookie或类似的东西?
例:
HttpServletResponse response = ...;
response.addCookie(new Cookie("foo", "bar"));
response.addCookie(new Cookie("foo", "42"));
Run Code Online (Sandbox Code Playgroud)
哪个值将被传输到浏览器并存储?
更新的答案 - 正如@skaffman和@Stephen C的评论所示,这不是理想的做法.
RFC规范http://www.ietf.org/rfc/rfc2109.txt说明
NAME = VALUE属性值对必须在每个cookie中排在第一位. 如果属性在cookie中出现多次,则行为未定义.
在Tomcat服务器上,行为是发送到浏览器的实际标头:
Set-Cookie:foo = bar
Set-Cookie:foo = 42
这里foo被覆盖了.稍后阅读cookie会给你42.