如何在 HTTP 重定向上转发标头

Posted

技术标签:

【中文标题】如何在 HTTP 重定向上转发标头【英文标题】:How to forward headers on HTTP redirect 【发布时间】:2010-12-30 11:52:04 【问题描述】:

我正在编写一个响应 HTTP 重定向的 web 应用程序。有没有办法强制客户端将我在响应中包含的标头转发到新 url?

示例请求:

POST /insertion HTTP/1.1
Content-Length: 9

(content)

Web 应用响应:

HTTP/1.x 302 Found
Location: /dock
Mydata: asdf

下一个客户请求:

GET /dock HTTP/1.1
Mydata: asdf

更新:我似乎对此事并不清楚。我知道 cookie 会很有用,但我不能使用它们。你知道是否存在我正在寻找的东西吗?

【问题讨论】:

【参考方案1】:

除了 HTTP cookie,协议规范中没有关于转发标头的任何内容。客户端需要实现这个功能。

【讨论】:

有没有受欢迎的客户【参考方案2】:

将您的数据作为参数放入新的 url:

HTTP/1.x 302 Found
Location: /dock?data=asdf

或将其保存在 cookie 中

HTTP/1.x 302 Found
Location: /dock
Set-Cookie: data=asdf

【讨论】:

【参考方案3】:

这就是 cookie 的用途。您可以为浏览器会话设置它,并在下一次请求后使其失效。

【讨论】:

如果重定向跨越不同的域,那效果就不太好了。 或者如果你使用无状态请求。

以上是关于如何在 HTTP 重定向上转发标头的主要内容,如果未能解决你的问题,请参考以下文章

重定向到页面并发送自定义 HTTP 标头

在powershell中使用Invoke-WebRequest重定向URL时如何获取位置标头

我应该为这个重定向标头 301,谷歌索引将如何受到影响?

如何使用haproxy进行url路径重定向,非域名跳转

使用 urllib2.urlopen 时如何访问包含重定向的原始响应标头

如何根据标头的值进行 nginx 重定向?