(这个问题比其他任何问题都更像是一个现实检验 - 我很确定这是可能的,但想确定一下。)
我正在编写一个代理服务器,它接收 HTTP 请求,将它们传递到远程服务器,然后返回远程服务器的响应。
我遇到了一个问题,远程服务器响应之一是设置 cookie 的 302 重定向。这是一个例子:
server: nginx/0.7.65
date: Wed, 26 Jan 2011 04:42:18 GMT
connection: keep-alive
set-cookie: JSESSIONID=FFFFFFFUUUUUUUUUUU; Domain=.50.16.34.61; Path=/
location: http://50.16.34.61/client/whatever.html
content-length: "0"
当客户端重定向到 50.16.34.61(与代理服务器不同的域)时,我注意到 cookie 尚未设置。
我是否想用 set-cookie 指令的 Domain 部分做一些疯狂的事情?
Edit
基本上,我做错了,根据http://www.ietf.org/rfc/rfc2109.txt http://www.ietf.org/rfc/rfc2109.txt请求主机确实需要是 set-cookie 指令中域的超集。
/悲伤的长号
仅当浏览器要求的 Host: 标头是所使用值的超集时,Domain= cookie 内容才会起作用。
在您的情况下,您的代理服务器似乎假装是另一台服务器,因此拦截这些 Location: 和 Set-Cookie: 标题行以及许多其他内容可能是有意义的,并替换相关位以继续指向您的服务器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)