单个http响应中可以设置的Cookie数量上限吗?如果是,多少?
因为我试图在一个响应中创建2个cookie,由于某种原因,只能创建一个。我正在使用下面的代码。
Cookie cookie = new Cookie("wNote", "1530571761964");
cookie.setMaxAge(2592000);
cookie.setPath("/myWebsite/");
response.addCookie(cookie);
另一个cookie是JSESSIONID
,它由服务器自动创建。在Set-Cookie
下的响应标题中,我只能看到JSESSIONID
。
答案 0 :(得分:3)
如果您正在使用Tomcat,则 HttpServletResponse.addCookie(javax.servlet.http.Cookie)中只有一个Cookie ,但是此方法可以调用多次:
该servlet通过使用
HttpServletResponse.addCookie(javax.servlet.http.Cookie)
方法将cookie发送到浏览器,该方法将字段添加到HTTP响应标头中,以一次一次向浏览器发送cookie。可以多次调用此方法以设置多个cookie。
该浏览器应为每个Web服务器支持20个cookie,总共300个cookie,并且每个cookie的大小可能限制为4 KB。
Cookies Doc
可以更深入地了解此Cookie。我检查了RFC 2109
实际的用户代理实现对数量和数量有限制 他们可以存储的Cookie的大小。通常,用户代理的Cookie 支持应该没有固定的限制。他们应该努力将其存储为
尽可能多的常用Cookie。此外,通用
用户代理应提供以下每个最低功能 单独,但不一定同时:
- 至少300个Cookie
- 每个cookie至少4096个字节(根据 语法中包含cookie非终结符的字符 Set-Cookie标头的说明)
- 每个唯一主机或域名至少20个Cookie