一、 前言
网上使用C/C++ socket发送http请求的资料有很多很多。
代理服务器的原理资料也不少。
但是如何使用C/C++通过代理进行http请求的资(源)料(码)却没有找到。
也不知道是不是我的关键字搜索的不对。。。
所以准备自己研究一把。
二、 第一步:分析
分析代理服务器原理:
客户端 <==> 代理服务器 <==> 目的服务器
看到这,灵感一闪,创建socket的时候应该使用“代理服务器”的地址和端口,而不是目的服务器的地址和端口,马上撸码测试。
三、 第二步:撸码测试
使用“代理服务器”的地址和端口创建socket,然后把http request发送到“代理服务器”。
编译运行。
失败了,看来没有这么简单,得抓个包看看浏览器是怎么办到的。
四、 第三步:抓包
我PC地址:192.168.32.165
代理服务器地址:192.168.38.7
目的地址:www.google.com
使用chrome(浏览器已经配置了http代理)访问www.google.com,然后抓包,看看浏览器是如何实现代理上网的。
发现了两条可疑数据,如下图: