gpt4 book ai didi

http - 在重定向和代理上转到 http.Request header

转载 作者:数据小太阳 更新时间:2023-10-29 03:28:55 25 4
gpt4 key购买 nike

https://groups.google.com/forum/#!topic/golang-nuts/OwGvopYXpwE

正如在此线程中所见,当 http.Client 向重定向发送请求时, header 会重置。

有一个解决方法,如:

client.CheckRedirect = func(req *http.Request, via []*http.Request) error {
if len(via) >= 10 {
return fmt.Errorf("too many redirects")
}
if len(via) == 0 {
return nil
}
for attr, val := range via[0].Header {
if _, ok := req.Header[attr]; !ok {
req.Header[attr] = val
}
}
return nil
}

但我的问题是,如果我想通过我的代理服务器进行 http 请求,我该怎么做。

当http请求通过代理服务器时,header是否全部重置?我是否必须在代理中设置另一个 http.Client

我使用 https://github.com/elazarl/goproxy 设置了我的代理服务器

谢谢,

最佳答案

我简要地查看了代码,goproxy 似乎没有以任何特殊方式处理 3XX 响应——它们只是被路由回您的客户端,因此它可以做出相应的 react 。在您的情况下,您将发出另一个请求并设置所有 header 。

如果这不是你关心的,你只是想知道代理的存在是否需要在客户端进行任何黑客攻击,那么不,http.Client 不会在代理是在使用中,它甚至不知道有代理参与。

您可以通过设置您自己的简单服务器(例如在 Go 中)轻松测试这些假设,该服务器返回重定向响应(给它自己或某些 nc 监听器)并打印所有 header 。当通过代理将客户端路由到服务器时,您可以确保服务器端一切正常。

关于http - 在重定向和代理上转到 http.Request header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27065529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com