【发布时间】:2020-07-23 08:04:10
【问题描述】:
当我在 303 See Other 响应中设置 cookie 时,下一个请求(带有重定向到的位置)不包含指定的 cookie。 https://www.rfc-editor.org/rfc/rfc7231#section-6.4.4(在 303 响应中)似乎没有特别提到 cookie。我可以在当前的 Firefox 和当前的 Chrome 上重现该问题。从 Host 标头中可以看出,所有这些都是针对同一来源制作的。
失败
POST /login HTTP/1.1
Host: localhost:22242
HTTP/1.1 200 OK
content-type: text/html
content-length: 694
set-cookie: Authenticating=RrPWNaWsbC013k9QE9zzjJ5C2-c6DKHUnwoKZnL3-knY1aMlxpoGKIm5Kgc
date: Wed, 22 Jul 2020 15:13:14 GMT
POST /mfa/check HTTP/1.1
Host: localhost:22242
Cookie: Authenticating=RrPWNaWsbC013k9QE9zzjJ5C2-c6DKHUnwoKZnL3-knY1aMlxpoGKIm5Kgc
HTTP/1.1 303 See Other
content-length: 0
location: /
set-cookie: Session=k4Bx657138TS2SWdD6KXSxfUy9lddN89HdDOn5_dDLFfvFJwTdEpTGZ_4pw
date: Wed, 22 Jul 2020 15:13:53 GMT
GET / HTTP/1.1
Host: localhost:22242
Cookie: Authenticating=RrPWNaWsbC013k9QE9zzjJ5C2-c6DKHUnwoKZnL3-knY1aMlxpoGKIm5Kgc
为什么后面的请求不发送Session cookie?
作品
POST /login HTTP/1.1
Host: localhost:22242
HTTP/1.1 200 OK
content-type: text/html
content-length: 718
date: Wed, 22 Jul 2020 15:20:41 GMT
POST /mfa/check HTTP/1.1
Host: localhost:22242
HTTP/1.1 303 See Other
location: /
set-cookie: Session=0WGq8q3Z_chLgf6gUSUnPrivqa8jqvOQJRlDnY8XehQhN4QwIjk0FYwXajI
content-length: 0
date: Wed, 22 Jul 2020 15:21:41 GMT
GET / HTTP/1.1
Host: localhost:22242
Cookie: Session=0WGq8q3Z_chLgf6gUSUnPrivqa8jqvOQJRlDnY8XehQhN4QwIjk0FYwXajI
在这个看似相似的情况下,cookie 在 303 重定向后设置正确。
【问题讨论】:
-
这可能是服务器端问题吗?我有一些网络服务器在重定向时剥离标头的记忆。如果您确定标头已到达,请忽略。
-
我从浏览器的开发者工具中获得了这些摘录,所以我确信它们会到达 UA。
-
好吧,所有的重定向都是本地重定向到同一个域,对吧?在您的示例中绝对看起来像它,但想确保这不是
SameSiterelated-issue -
也遇到过这个问题,但不确定是否有帮助! bugs.chromium.org/p/chromium/issues/detail?id=696204
-
@Evert 感谢您与我一起思考这个问题,毕竟发现了(愚蠢的)问题。