Set-Cookie Header在响应中,但是只有在nginx路由器使用

时间:2016-02-24 11:19:37

标签: curl cookies nginx google-chrome-devtools http-redirect

问题: 通过chrome开发人员工具看到的浏览器请求是流程的一部分:

  1. / request_one请求请求some_cookie =“abc”和 与some_cookie =“def”的回应
  2. / request_one POST请求 请求some_cookie =“def”并回复some_cookie =“ghi” 和303重定向到/ request_xxx
  3. / request_xxx GET请求 请求some_cookie =“def”
  4. 我试图找出为什么第3个请求使用cookie“def”而不是更新值“ghi”

    这里的关键点是,当我通过弹性负载均衡器和nginx路由器时,它会发生。 使用没有nginx路由器的内部URL的相同流程,工作正常

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

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

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

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

    • 忽略响应主体

    • 连接#0以托管application_url保持原样

    • 向此网址发出另一个请求:“https://application_url/contextpath/request_xxx

    • 禁用POST,使用GET

    • 找到主机application_url的包:xxxxxxxxxxxx

    • 重新使用现有连接! (#0)与主机application_url

    • 连接到application_url(IP_HERE)端口443(#0)

1 个答案:

答案 0 :(得分:1)

最后发现,这是导致问题的cookie大小。 基于以下网站,chrome限制高达4096,我通过了4116。

http://browsercookielimits.squawky.net/

为什么我被nginx带走是因为当通过内部网址使用时,它起作用了。但那不是问题。

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