gpt4 book ai didi

https - 发送到 HTTP 代理服务器的正确 URL 格式是什么?

转载 作者:行者123 更新时间:2023-12-02 16:58:22 24 4
gpt4 key购买 nike

当我的应用程序从服务器请求特定 URL(通过 https)时,它会收到 301 Moved Permanently 重定向。然而,Location header 的格式不正确。我看到这样的东西:

> GET https://myserver/url HTTP/1.1
< 301 Moved Permanently
< Location: https://redirectedserverhttp://myserver/url

如果我在没有主机的情况下发送请求,我会得到一个格式正确的 URL:

> GET /url HTTP/1.1
< 301 Moved Permanently
< Location: https://redirectedserver/url

我正在通过代理服务器并根据 RFC 2068第 5.1.2 节,“向代理发出请求时需要使用绝对URI 形式”,因此看起来我正在以正确的方式执行此操作,但代理响应不正确。如果我通过浏览器、curl 或 wget 尝试此操作,效果很好。我查看了 wget 代码,逻辑如下:

if( proxy && !https ) {
use absoluteURI
} else {
use relativeURI
}

Wget 的源代码中甚至有一条注释:

/* When using SSL over proxy, CONNECT establishes a direct
connection to the HTTPS server. Therefore use the same
argument as when talking to the server directly. */

这是某个地方定义的实际标准吗?如果应该使用绝对 URI 形式,为什么其他工具使用它,为什么它失败了?

最佳答案

您只能使用 HTTP 发送绝对 URL。无论如何,它们对于 HTTPS 来说毫无用处,因为代理看不到它们。它只能看到 CONNECT header ,其他所有内容都已加密。

响应无效 URL 的不是代理,而是服务器本身。 代理无法看到或响应,因为它也已加密。

关于https - 发送到 HTTP 代理服务器的正确 URL 格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20050052/

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