C/C++ socket通过http代理服务器发送http请求

本文介绍了如何使用C/C++通过http代理服务器发送http请求。作者首先分析了代理服务器的工作原理,然后逐步进行代码实现,通过抓包工具观察浏览器的行为,并最终成功实现了连接到目的服务器的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 前言

   网上使用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,然后抓包,看看浏览器是如何实现代理上网的。
   发现了两条可疑数据,如下图:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值