http代理客户端如何工作

http代理客户端如何工作,http,web,proxy,Http,Web,Proxy,如果HTTP客户端通过代理(而不是反向代理)服务器到达网站,那么从该客户端主机发送到internet的实际HTTP请求及其参数是什么 例如: 代理服务器:www.Proxy.com:80 目标网站:www.website.com:8081 HTTP客户端是否发送以下Get请求 收到http://www.proxy.com:80 主持人:www.proxy.com:80 或 收到http://www.website.com:8081 主持人:www.website.com:8081 如

如果HTTP客户端通过代理(而不是反向代理)服务器到达网站,那么从该客户端主机发送到internet的实际HTTP请求及其参数是什么

例如:

代理服务器:www.Proxy.com:80
目标网站:www.website.com:8081

HTTP客户端是否发送以下Get请求


收到http://www.proxy.com:80
主持人:www.proxy.com:80


收到http://www.website.com:8081
主持人:www.website.com:8081

如果第一种情况为真,代理如何知道转发此请求的实际目的地是什么


否则,如果第二个为真,那么请求如何实际到达代理主机?

客户端不必更改HTTP请求,就可以将其发送到代理。它必须更改TCP头

下面的屏幕截图显示了从我的浏览器发送到代理的HTTP请求,因为您在HTTP请求本身中看不到指定代理的内容

其工作原理是浏览器/客户端将发出一个HTTP GET请求,然后该请求将被转发到TCP/IP堆栈并包装在TCP头中。TCP头是指定目标的位置(代理或其他)


客户端无需更改HTTP请求即可将其发送到代理。它必须更改TCP头

下面的屏幕截图显示了从我的浏览器发送到代理的HTTP请求,因为您在HTTP请求本身中看不到指定代理的内容

其工作原理是浏览器/客户端将发出一个HTTP GET请求,然后该请求将被转发到TCP/IP堆栈并包装在TCP头中。TCP头是指定目标的位置(代理或其他)


当您想向
http://www.example.com:8081/index.html
,浏览器连接到
www.example.com:8081
,并发送以下请求:

GET /index.html HTTP/1.1
Host: www.example.com:8081
GET http://www.example.com:8081/index.html HTTP/1.1
Host: www.example.com:8081
现在,当配置代理时,例如
www.proxy.com:80
,浏览器将连接到
www.proxy.com:80
,并发出以下请求:

GET /index.html HTTP/1.1
Host: www.example.com:8081
GET http://www.example.com:8081/index.html HTTP/1.1
Host: www.example.com:8081

因此,当配置代理时,HTTP客户端连接到代理而不是目标服务器,并使用绝对URI发送请求。

当您要向
http://www.example.com:8081/index.html
,浏览器连接到
www.example.com:8081
,并发送以下请求:

GET /index.html HTTP/1.1
Host: www.example.com:8081
GET http://www.example.com:8081/index.html HTTP/1.1
Host: www.example.com:8081
现在,当配置代理时,例如
www.proxy.com:80
,浏览器将连接到
www.proxy.com:80
,并发出以下请求:

GET /index.html HTTP/1.1
Host: www.example.com:8081
GET http://www.example.com:8081/index.html HTTP/1.1
Host: www.example.com:8081

因此,当配置代理时,HTTP客户端连接到代理而不是目标服务器,并使用绝对URI发送请求。

HTTP代理服务器可以读取HTTP头。 无论何时使用http代理,tcp数据包中的目标地址(源自客户端)都具有代理服务器的目标地址。。 当代理服务器接收到tcp数据包时,它可以读取http头(存在于tcp数据包负载中),http头包含数据包的实际目的地。。使用此信息,http代理服务器可以将数据包转发到实际目的地


来源:

Http代理服务器可以读取Http头。 无论何时使用http代理,tcp数据包中的目标地址(源自客户端)都具有代理服务器的目标地址。。 当代理服务器接收到tcp数据包时,它可以读取http头(存在于tcp数据包负载中),http头包含数据包的实际目的地。。使用此信息,http代理服务器可以将数据包转发到实际目的地


来源:

“客户端不会更改HTTP请求”-它会更改。充当代理的HTTP调试器不会显示此内容。@CodeCaster-改进了我的回答“客户端不会更改HTTP请求”-它会显示。充当代理的HTTP调试器不会显示此内容。@CodeCaster-改进了我的回答您能澄清一下“浏览器将连接到www.proxy.com:80”是什么意思吗?除了在url或主机头中指定代理主机外,它如何连接到代理服务器?它将通过TCP连接到代理服务器,就像连接到常规web服务器一样。您能否澄清“浏览器将连接到www.proxy.com:80”是什么意思?除了在url或主机头中指定代理主机外,它如何连接到代理服务器?它将通过TCP连接到代理服务器,就像连接到常规web服务器一样。