HTTP重定向(302)不';在下面的GET请求中不使用Cookie

HTTP重定向(302)不';在下面的GET请求中不使用Cookie,http,redirect,cookies,get,setcookie,Http,Redirect,Cookies,Get,Setcookie,这是一个我已经研究了一段时间的问题 我有一个重定向,在302重定向中,它似乎不尊重Set Cookie属性 以下是我使用wireshark获取的请求和响应头 HTTP/1.1 302 Moved Temporarily\r\n Connection: close\r\n Location: http://192.168.1.1:8888/home/\r\n Set-Cookie: foo=test_data; Domain=192.168.1.1; Path=/\r\n \r\n GET /h

这是一个我已经研究了一段时间的问题

我有一个重定向,在302重定向中,它似乎不尊重Set Cookie属性

以下是我使用wireshark获取的请求和响应头

HTTP/1.1 302 Moved Temporarily\r\n
Connection: close\r\n
Location: http://192.168.1.1:8888/home/\r\n
Set-Cookie: foo=test_data; Domain=192.168.1.1; Path=/\r\n
\r\n

GET /home/ HTTP/1.1\r\n
Host: 192.168.1.1:8888\r\n
Connection: keep-alive\r\n
Upgrade-Insecure-Requests: 1\r\n
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36\r\n
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n
Accept-Encoding: gzip, deflate\r\n
Accept-Language: en-US,en;q=0.8\r\n
DNT: 1\r\n
\r\n

我只是对内容进行了一点消毒,但不应该修改任何关键内容。关键是无论我使用什么浏览器,cookie'foo'都不会放在302之后的GET请求中。据我所知,这不是预期的行为。我相信这一点是不对的吗?302是否有我遗漏或做错的地方?

在问题中,
Cookie
头没有出现在重定向的HTTP请求(
GET)中http://192.168.1.1:8888/home
)。根本原因是:cookie
foo=test\u数据从来就不存在。当它通过
Set Cookie
响应头从服务器发送时,浏览器将拒绝它,因为它的
不包括原始服务器

根据:

用户代理应拒绝属于不包含源服务器的域的cookie。如果以下cookie是由托管在originalcompany.com上的服务器设置的,则将拒绝该cookie

设置Cookie:qwerty=219ffwef9w0f;Domain=somecompany.co.uk;路径=/;Expires=2019年8月30日星期三00:00:00 GMT

要获得更准确的描述,您可以查看


这是有充分理由设计的。如果所有服务器都能
为所有域设置Cookie
,那么清除其他网站的Cookie将非常容易,这将是互联网的灾难。

当您访问返回
302
的URL时,它是否托管在
192.168.1.1:8888
?不,它可以是任何内容。重定向的形式基本上是为了感谢您的响应。我已经读了好几遍了,但从来没有注意到那个重要的细节。即使如此,这也很容易理解。谢谢