代理服务器是HTTP协议中一个重要的组件,发挥着重要的作用。 关于HTTP代理的文章有很多,本文不再赘述,如果不清楚的可以看一下 HTTP代理的基础知识。 本文主要介绍代理的事例,分析一个真实的案例来帮助理解HTTP代理的原理。 HTTP代理的原理下面分析一个 再简单说一下HTTP请求的流程: 一、 监控请求通过网络监控获取到的HTTP请求如下: 可以看到在网络监控中,有两个HTTP请求,一个是向代理服务器发送的HTTP,另一个是代理服务器想目标服务器发送的HTTP请求。这两个请求的请求体是一样的,如下图: 客户端向代理服务器发送的HTTP报文: 代理服务器想目标服务器发送的HTTP报文: 二、 推测处理流程可以看到,两张图片的HTTP报文是相同的(也有可能Header不同),我们可以推测出客户端和代理服务器的处理流程,如下: 客户端的处理流程: 代理服务器的处理流程: 三、 验证推测的处理流程在推测出客户端和代理服务器的处理逻辑后,我们需要验证我们的推测是否正确。 我们可以构造一个TCP请求,客户端连接到代理服务器,发送HTTP报文,报文的内容是客户端直接发送到服务器的内容。 例如:直接访问
我们构造一个TCP请求,连接代理服务器,报文的内容也是发送上面的报文,看代理服务器能否正常请求博客园的数据,如果可以正常请求,说明我们对于客户端和代理服务器推测是正确的,如果没有请求博客园数据,而是返回代理服务器的相关信息,表示推测错误。 下面我使用python向代理服务器 运行程序,发送TCP请求,报文如下: 查看代理服务器的信息,可知,HTTP请求正常发送到博客园,并且正常响应,如下图: 到此推测验证完成,符合预期结果。 书本上的理论看多了,就以为自己看懂了,然而我们真的懂了吗?没动手实践过能算是懂了吗 |
|
来自: ThinkTank_引擎 > 《代理设置》