benoitc / benoitc/http-parser

Error method parsed when more data append request buffer

未关闭
#70 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
bug to investigate
主要语言
C
星标
345
派生
94
PR 合并指标
30 天内没有已合并 PR

描述

I made a demo
```
try:
from http_parser.parser import HttpParser
except ImportError:
from http_parser.pyparser import HttpParser

req = "GET / HTTP/1.1\r\nHost: www.xxx.com\r\n\r\n"
resp = "HTTP/1.1 200 OK\r\nContent-Length: 4\r\n\r\n1234"

data = req
p = HttpParser()
nparsed = p.execute(data, len(data))
print p.get_method(), nparsed, len(data)
# Got: GET 37 37

data = req + resp
p = HttpParser()
nparsed = p.execute(data, len(data))
print p.get_method(), nparsed, len(data)
# Got: HEAD 38 79
# pyparser Got: GET 79 79

# expected: GET 37 79
```

贡献指南

这个仓库没有索引到贡献指南

调研方向

首先通过由 C 支持的 HttpParser 入口点运行提供的 demo,尤其是 execute 和 get_method,并将其与 pyparser 进行比较。跟踪追加 response 后解析出的 method 发生变化的原因;当 C 实现报告 GET、解析 37 个 request 字节,并使合并后的长度保持为 79(如预期结果所示)时,即完成任务。

由索引模型根据 Issue 内容生成。

评估

技术栈
c, python
领域
api, backend
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
42/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。