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

一、 前言   网上使用C/C++ socket发送http请求的资料有很多很多。   代理服务器的原理资料也不少。   但是如何使用C/C++通过代理进行http请求的资(源)料(码)却没有找到。   也不知道是不是我的关键字搜索的不对。。。   所以准备自己研究一把。 二、 第一步:分析   分析代理服务器原理:   客户端 <==> 代理服务器  &lt...
摘要由CSDN通过智能技术生成

一、 前言

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

  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要实现一个简单的HTTP服务器,可以使用Windows平台上的C/C++编程语言。 首先,你需要了解HTTP协议的基本知识,例如请求和响应的格式、HTTP方法(GET、POST等)、状态码以及标头字段(例如Content-Type、Content-Length等)。 然后,你可以使用Winsock库来创建一个基于套接字的服务器。使用`socket`函数创建一个套接字,然后使用`bind`函数将其绑定到指定的IP地址和端口号。 接下来,你可以使用`listen`函数开始监听传入的连接请求。当有客户端发送连接请求时,你可以使用`accept`函数接受该连接,并返回一个新的套接字,用于与客户端进行通信。 在收到客户端请求后,你可以使用`recv`函数接收HTTP请求。解析请求的首部和URI路径,并根据请求确定要执行的操作。 对于GET请求,你可以打开请求的文件,并将文件内容作为HTTP响应返回给客户端。你可以使用`fopen`函数打开文件,然后使用`fread`函数读取文件内容,并使用`send`函数发送响应到客户端。 对于POST请求,你可以解析请求体中的数据,并根据需求执行相应的操作。例如,你可以解析表单数据、存储到数据库或者进行其他处理。 最后,你可以使用`closesocket`函数关闭套接字,并释放相关资源。 需要注意的是,这只是一个简单的HTTP服务器的实现示例,如果你想要一个更完整和稳定的服务器,你可能需要处理并发连接、多线程或者使用更成熟的HTTP服务器框架。 总结起来,实现一个简单的Windows平台上的C/C++ HTTP服务器涉及到使用Winsock库创建套接字、接受连接请求、解析HTTP请求、处理请求发送响应等步骤。希望这个回答对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值