http解析库http-parser

一、http-parser简介

1、简介

       http-parser是一个用C编写的HTTP消息解析器,可以解析请求和响应,被设计用于高性能HTTP应用程序。它不会进行任何系统调用及内存分配,它不会缓冲数据,它可以被随时中断。根据你的体系结构,每个消息流只需要大约40个字节的数据(在每个连接的web服务器中。

2、特征

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

3、可以从HTTP消息中解析下列信息

  • 报头域及值(Header fields and values)
  • 内容长度(Content-Length)
  • 请求方法
  • 响应状态码
  • 传输编码
  • HTTP版本
  • 请求URL(网址)
  • 消息体(Message body)

 

二、用法

1、下载

       http-parser官方地址:https://github.com/nodejs/http-parser

解压:

unzip http-parser-master.zip

2、编译安装

make
make parsertrace
make url_parser
sudo make install

3、初始化

       http-parser的每个tcp连接使用一个对象。使用初始化结构http_parser_init()并设置回调。初始化结构如下:

void http_parser_settings_init(http_parser_settings *settings);

    对于请求解析器可能是这样的:

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;

4、执行并错误检查

    当套接字接收到数据时,执行解析器并检查错误。执行器函数如下

size_t http_parser_execute(http_parser *parser,
                           const http_parser_settings *settings,
                           const char *data,
                           size_t len);

例:

size_t len = 80*1024, nparsed;
char buf[len];
ssize_t recved;

recved = recv(fd, buf, len, 0);

if (recved < 0) {
  /* Handle error. */
}

/* Start up / continue the parser.
 * Note we pass recved==0 to signal that EOF has been received.
 */
nparsed = http_parser_execute(parser, &settings, buf, r
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要在OpenWRT中安装http-parser,可以按照以下步骤进行: 1. 进入OpenWRT路由器的终端,以root权限登录。 2. 更新软件包列表: ``` opkg update ``` 3. 安装http-parser及其开发文件: ``` opkg install http-parser http-parser-dev ``` 4. 安装完成后,可以使用以下命令查看安装的http-parser版本: ``` opkg list-installed | grep http-parser ``` 这样就可以在OpenWRT中成功安装http-parser了。 ### 回答2: 安装http-parser的步骤如下: 首先,你需要在OpenWrt设备上打开终端或SSH。然后使用以下命令更新软件包列表: ``` opkg update ``` 接下来,安装http-parser的开发文件和工具: ``` opkg install http-parser-dev ``` 安装完成后,你可以在OpenWrt设备上找到已安装的http-parser文件。 如果你想在自己的应用程序中使用http-parser,你需要在编译时链接该。你可以使用以下命令编译你的应用程序: ``` gcc -o your_app your_app.c -lhttp_parser ``` 这将编译你的应用程序并链接http-parser。请确保将“your_app”替换为你的应用程序名称,将“your_app.c”替换为你的应用程序源代码文件的名称。 安装http-parser后,你可以在你的应用程序中使用其功能,如解析HTTP请求和响应等。 希望这个回答对你有帮助! ### 回答3: 要在OpenWrt上安装http-parser,可以按照以下步骤进行操作: 1. 首先,确保OpenWrt设备已经正确连接到互联网,并且可以下载软件包。可以通过运行以下命令来检查网络连接是否正常: ``` opkg update ``` 2. 安装http-parser的开发包,可以运行以下命令来执行安装: ``` opkg install libhttp-parser-dev ``` 3. 安装开发包后,还需要在编译器中链接该。可以在Makefile文件中的LDFLAGS中指定链接路径,具体方法如下所示: - 打开OpenWrt SDK目录下的package/your-package/Makefile文件,并找到LDFLAGS选项。 - 在LDFLAGS选项中添加以下内容(假设文件安装在/usr/lib目录下): ``` LDFLAGS += -L/usr/lib -lhttp-parser ``` 4. 保存并关闭Makefile文件。 5. 在OpenWrt SDK目录下,运行以下命令进行编译和安装: ``` make package/your-package/compile ``` 6. 编译完成后,在OpenWrt设备上安装编译好的软件包: ``` opkg install your-package ``` 通过以上步骤,就可以在OpenWrt设备上成功安装http-parser,并在编译器中使用它的功能。请注意,具体的安装路径和文件名可能会因版本和配置而有所不同,请根据实际情况进行相应的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值