![Web 代理在哪个 TCP/IP 层运行,我对实现的理解正确吗?](https://linux22.com/image/1561036/Web%20%E4%BB%A3%E7%90%86%E5%9C%A8%E5%93%AA%E4%B8%AA%20TCP%2FIP%20%E5%B1%82%E8%BF%90%E8%A1%8C%EF%BC%8C%E6%88%91%E5%AF%B9%E5%AE%9E%E7%8E%B0%E7%9A%84%E7%90%86%E8%A7%A3%E6%AD%A3%E7%A1%AE%E5%90%97%EF%BC%9F.png)
假设客户端 C 想要向服务器 S 发送 HTTP 请求,但通过代理 P。
我的理解是,只需对普通 HTTP 请求进行以下两处修改即可:
客户端发送常规 HTTP 消息,仅包含完整 URL(在 HTTP 消息的第一行)而不是相对 URL,并在必要时添加代理特定的标头。代理处理并删除代理特定的标头。这是应用层操作。
此消息发送到代理的 TCP/IP 地址,而不是服务器的 TCP/IP 地址。代理向服务器的 TCP/IP 地址发出请求(位于 HTTP 消息的第一行)。这是 TCP/IP 层操作。
因此我认为代理是在 IP、TCP 和应用程序层完成的。
以上内容正确吗?