用Winsock接收HTTP请求

时间:2018-10-06 16:34:33

标签: c++ winsock2

出于教育目的,我试图用C ++制作一个Web API。 Web API需要能够侦听HTTP请求(GET,POST等),当它收到HTTP请求时,它需要能够将数据发送回客户端。因为它是出于教育目的,所以我希望在没有不必要的库的情况下进行操作。现在,我需要做的第一件事是使api能够接收请求并对此做出响应,经过对Google的一些研究后,我发现winsock可能是设置Windows套接字的最基本的方法,但是我在接收时几乎找不到http请求。

我的问题:winsock是否可以从浏览器接收http请求,然后将数据发送回浏览器?。

3 个答案:

答案 0 :(得分:1)

  

我的问题是:Winsock是否可以从浏览器接收http请求,然后将数据发送回浏览器?

是的。 ^^

答案 1 :(得分:0)

是的,因为HTTP是(通常)使用TCP作为基础传输协议的协议。

但是,即使对有经验的C ++开发人员来说,尝试在简单的win32套接字之上构建真正的HTTP层也有些过多。

许多没有经验的C ++开发人员可能会以“好吧,您只需要读取一些数据,解析标头,组装自己的HTTP响应并将其发送回去”就可以忽略此任务。

但是.. 您将需要支持

  • TLS,具有所有讨厌的私钥/公钥实现
  • 重定向
  • 分块传输
  • G邮编

列表会一直打开。

因此实际上,如果您只想接受套接字,则读取某些数据并发送一些基本的HTTP响应,而不是。如果您想要一个可靠,专业的HTTP库-可能不需要。

答案 2 :(得分:0)

您可以查看此页面 https://github.com/ReneNyffenegger/cpp-webserver 以查看 HTTP 的简单 winsock 服务器实现。 Web 服务器的实现并不是那么困难。当然,你应该有时间。