HTTP ParserHTTP解析器

联合创作 · 2023-09-29 09:33

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;
浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报