假设客户端 C 想要向服务器 S 发送 HTTP 请求,但通过代理 P。
我的理解是,只需对普通 HTTP 请求进行以下两处修改即可:
客户端发送常规 HTTP 消息,仅包含完整 URL(在 HTTP 消息的第一行)而不是相对 URL,并在必要时添加代理特定的标头。代理处理并删除代理特定的标头。这是应用层操作。
此消息发送到代理的 TCP/IP 地址,而不是服务器的 TCP/IP 地址。代理向服务器的 TCP/IP 地址发出请求(位于 HTTP 消息的第一行)。这是 TCP/IP 层操作。
因此我认为代理是在 IP、TCP 和应用程序层完成的。
以上内容正确吗?