代码之家  ›  专栏  ›  技术社区  ›  Roshana Pitigala Laxmansinghsodhanohdiyala

一个响应可以设置多少个cookie?

  •  2
  • Roshana Pitigala Laxmansinghsodhanohdiyala  · 技术社区  · 6 年前

    在单个HTTP响应上是否可以设置最多的cookies数?如果是,有多少?


    因为我试图在一个响应中创建两个cookie,出于某种原因,只有一个cookie被创建。我正在使用下面的代码。

    Cookie cookie = new Cookie("wNote", "1530571761964");
    cookie.setMaxAge(2592000);
    cookie.setPath("/myWebsite/");
    response.addCookie(cookie);
    

    另一块饼干是 JSESSIONID 正在由服务器自动创建。在下面的响应头中 Set-Cookie 我只能看见 J会话ID 是的。

    • 阿帕奇Tomcat 8.0.27
    • 谷歌浏览器67.0
    1 回复  |  直到 6 年前
        1
  •  3
  •   Gatusko    6 年前

    如果你用的是Tomcat, httpservletresponse.addcookie(javax.servlet.http.cookie)中只有一个cookie 但此方法可以多次调用:

    servlet使用 HttpServletResponse.addCookie(javax.servlet.http.Cookie) 方法,它将字段添加到http响应头以将cookies发送到浏览器, 一次一个 是的。

    可以多次调用此方法来设置多个cookie。

    浏览器预计每个web服务器支持20个cookie,总共300个cookie,并且每个cookie的大小可以限制为4kb。
    Cookies Doc


    好吧,再深入了解一下这些饼干。我查了一下 RFC 2109

    实际的用户代理实现对数量和
    他们能储存的饼干大小。一般来说,用户代理的cookie 支持应该没有固定的限制。他们应该努力把
    尽可能多的经常使用的饼干。此外,一般用途
    用户代理应提供以下每个最低功能 单独地,尽管不一定同时:

    • 至少300块饼干
    • 每个cookie至少4096字节(根据 在语法中组成cookie non-terminal的字符 set cookie头的说明)
    • 每个唯一主机或域名至少有20个cookie