【问题标题】:How to parse HTTP requests from a C based web server如何解析来自基于 C 的 Web 服务器的 HTTP 请求
【发布时间】:2013-11-11 04:58:18
【问题描述】:

我有一个编程项目,我必须创建一个处理 HTTP 请求的多线程 Web 服务器。

我刚刚学习了套接字编程,并且正在运行一个客户端和一个服务器。我想知道解析 HTTP 请求标头的最佳方法是什么。我在几分钟前看到了这个:how to parse http request in c++。但此时我宁愿不转向 C++。那么如何在 C 中解析 HTTP 请求呢?

【问题讨论】:

标签: c http


【解决方案1】:

您可以查看 C 语言中的 Web 服务器,例如 mongoose (https://github.com/cesanta/mongoose/blob/master/mongoose.c),并可以使用相同的方法来解析 http 请求。但我的建议是通过 HTTP RFC 2616,因为这将帮助您编写自己的 http 请求解析器。

您的服务器正在处理哪种 HTTP 请求(GET 或 POST 或 BOTH)??

在 http post 请求中,HTTP 标头和数据由“\r\n\r\n”分隔。 在接收到的数据 sscanf 中,Content-Length 形成 http 标头,然后在您获得 "\r\n\r\n" 后开始读取数据,直到您获得与 Content-Length 中提到的相同数量的数据。

【讨论】:

  • 我的服务器将处理 GET 和 HEAD 请求。谢谢你的回答:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-14
  • 1970-01-01
相关资源
最近更新 更多