Curl Set Cookie标头在响应中,但浏览器没有';t仅在使用nginx路由器的情况下在下一个请求中设置Cookie

Curl Set Cookie标头在响应中,但浏览器没有';t仅在使用nginx路由器的情况下在下一个请求中设置Cookie,curl,cookies,nginx,google-chrome-devtools,http-redirect,Curl,Cookies,Nginx,Google Chrome Devtools,Http Redirect,问题: 浏览器请求是流程的一部分,如通过chrome developer工具看到的顺序: /请求\u一个GET请求,请求带有一些\u cookie=“abc”和 用一些_cookie=“def”进行响应 /请求\一个带有 请求时使用一些cookie=“def”,响应时使用一些cookie=“ghi” 和303重定向到/request_xxx /请求\u xxx使用获取请求 使用一些\u cookie=“def”请求 我试图找出为什么第三个请求使用cookie“def”而不是更新值“ghi” 这里

问题: 浏览器请求是流程的一部分,如通过chrome developer工具看到的顺序:

  • /请求\u一个GET请求,请求带有一些\u cookie=“abc”和 用一些_cookie=“def”进行响应
  • /请求\一个带有 请求时使用一些cookie=“def”,响应时使用一些cookie=“ghi” 和303重定向到/request_xxx
  • /请求\u xxx使用获取请求 使用一些\u cookie=“def”请求
  • 我试图找出为什么第三个请求使用cookie“def”而不是更新值“ghi”

    这里的关键点是,当我通过弹性负载平衡器和nginx路由器时,它会发生。 同样的流使用内部URL,中间没有nginx路由器,效果很好

    看起来,在响应设置cookie之前,会创建重定向请求。在我的应用程序中,这是一个正常的场景,我更新cookie并执行redirect-303

    根据我的发现,cookie大小的增加反过来会增加响应,影响请求和响应大小限制的nginx配置是什么。不过,我在nginx错误日志中没有看到任何错误

    在chrome中有没有从第二步响应到第三个重定向请求的调试方法

    当通过curl执行请求时,更新相同的日志问题 这是我通过curl运行时看到的

    • 忽略响应体

    • 连接#0到主机应用程序_url保持不变

    • 向此URL发出另一个请求:“”

    • 禁用POST,与GET一起使用

    • 找到主机应用程序的捆绑包\u url:xxxxxxxxxxx

    • 重新使用现有连接!带有主机应用程序url的(#0)

    • 已连接到应用程序url(此处为IP)端口443(#0)


    最终发现,是cookie大小导致了问题。 根据下面的网站,chrome的限制是4096,我通过了4116

    我之所以对nginx着迷,是因为当我通过内部url使用nginx时,它是有效的。但这不是问题所在


    所以有一点需要理解,当cookie大小超过限制时,chrome不会抱怨。它只是在创建下一个请求时不使用它

    至于Chrome中的重定向调试,请检查DevTools网络面板中的
    保存日志
    框。谢谢。我已经查过了。这就是我发现第三个请求没有更新的cookie值的原因。所以这里我想要一种方法,在第二步停止,并从中获取curl请求。所以我可以使用curl和--verbose来调用第三个请求。我可以在chrome中禁用303重定向吗?因为chrome是一个兼容w3c的浏览器,我想你不能。但是,如果您愿意,可以使用curl手动运行所有步骤。这个问题对您有帮助吗?因此,请注意cookie monster(正如我的同事所描述的:),记住一条支持大多数浏览器的箴言,即每个域的cookie数不超过50个,每个域的cookie数不超过4093字节,如中所述