为什么 APT 不使用 HTTP `CONNECT` 连接到 HTTP 代理?

为什么 APT 不使用 HTTP `CONNECT` 连接到 HTTP 代理?

为什么 APT 不使用 HTTP 连接到 HTTP 代理CONNECT

我想将 APT 与 HTTP 代理一起使用,因此我使用http_proxy服务器地址导出了变量http://10.10.10.10

CONNECT现在,我的服务器在开始将 TCP 流量代理到指定主机后等待 HTTP请求。

然而,Wireshark显示APT并不发出HTTPCONNECT请求,而是HTTP GET直接向代理服务器发送请求。

为什么APT不发送HTTPCONNECT请求?这不是 HTTP 代理应该如何工作的吗?

答案1

apt不用于CONNECTHTTP 流量,因为它不需要(并且可以说不应该)。它确实将其用于 HTTPS 流量。

CONNECT用于通过代理建立隧道;典型用例是通过代理传输 TLS 或 SSH 流量。

它通常不用于 HTTP 流量。 HTTP 代理应该以与其代理的主机相同的方式做出反应;您将在整个 HTTP RFC 中看到它们的记录(查看中的“Obsoletes”行)RFC 2616找到他们)。客户端向代理发送与向主机发送相同的请求。

如果代理服务器允许,客户端通过代理连接到其目标主机CONNECT,但这首先就违背了使用代理的一些目的。特别是,CONNECT隧道不会被缓存。

相关内容