HTTP Parser - HTTP解析器


MIT
跨平台
C/C++

软件简介

C语言实现的HTTP解析器,提供请求和响应报文的解析功能,可用于高性能的HTTP应用程序中。它不使用任何系统调用及内存分配的功能,并且不缓冲任何数据,可以被随时中断使用。根据你的系统架构,它处理一个请求只消耗约40字节(而对于网络服务器就是每个连接)。

功能:

  • 不依赖第三方库
  • 处理持续流(keep-alive)
  • 分块解码
  • 支持Upgrade
  • 防止缓冲区溢出攻击

可以从HTTP消息中解析出下列信息:

  • 报头域及值
  • Content-Length
  • 请求方法
  • 响应代码
  • 传输编码
  • HTTP版本
  • 请求URL
  • 消息体

示例代码:

http_parser_settings settings;
settings.on_url = my_url_callback;
settings.on_header_field = my_header_field_callback;
/* ... */

http_parser *parser = malloc(sizeof(http_parser));
http_parser_init(parser, HTTP_REQUEST);
parser->data = my_socket;