2

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

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

4

1 回答 1

3

您可以查看 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 中提到的相同数量的数据。

于 2013-10-31T09:31:07.400 回答