本文档是开发的计划,随时更新,欢迎以 GitHub Issues 的形式提交功能需求、问题和bug报告等。
框架如下:
完成度 | 功能需求 |
---|---|
☑ | 内存管理 |
☑ | 线程管理 |
☑ | 时间管理 |
☑ | 互斥锁 |
☑ | socket API |
☑ | tcp直连 |
☑ | tls加密传输 |
完成度 | 功能需求 |
---|---|
☑ | 网卡初始化 |
☑ | 连接服务器 |
☑ | 终止连接 |
☑ | 读操作 |
☑ | 写操作 |
- | 使用 openssl |
完成度 | 功能需求 |
---|---|
☑ | 列表操作 |
☑ | 日志显示 |
☑ | 错误代码 |
☑ | 随机数生成器 |
完成度 | 功能需求 |
---|---|
☑ | 字符串与整形互转 |
☑ | 动态计算字符串的大小,可变参数 |
☑ | 处理字符串时的内存动态分配,realloc 方式 |
☑ | 字符串连接,可变参数 |
☑ | 字符串匹配处理(忽略大小写、指定匹配n个字符串等) |
- | - |
完成度 | 功能需求 |
---|---|
☑ | 通过url解析各个字段的内容 |
- | - |
完成度 | 功能需求 |
---|---|
☑ | 报文初始化、释放、内存空间增长等基础功能 |
☑ | 报文字段动态管理内存空间 |
☑ | 报文字段的连接、追加 |
☑ | 支持覆盖、引用的方式写入报文 |
- | - |
完成度 | 功能需求 |
---|---|
☑ | http 请求初始化 |
☑ | 根据 path 构建请求起始行 |
☑ | 根据 key-value 构建请求头部 |
☑ | 根据索引添加请求头部字段,若存在则不添加 |
☑ | 根据需求构建请求主体,填充请求头部字段的主体长度 |
☑ | 填充必要的 http 请求报文信息 |
☑ | 支持设置 HTTP 协议版本 / 请求方法等 |
☑ | 设置长连接 / 非长连接 |
☑ | 打印 / 获取HTTP请求报文各个字段内容 |
- | - |
完成度 | 功能需求 |
---|---|
☑ | 响应结构初始化 |
☑ | 响应结构释放 |
- | 设置、获取响应结构中的私有信息,比如响应报文长度、偏移、响应报文状态等 |
- | - |
完成度 | 功能需求 |
---|---|
☑ | 拦截器初始化网卡 |
☑ | 根据解析的 url 信息连接服务器 |
☑ | 发起 http 连接服务器 |
☑ | 构建完整的 http 请求报文 |
☑ | 完成正常的 http 请求操作 |
☑ | 初始化 http_parser、parser_settings,为解析响应报文做准备 |
☑ | 拦截器状态机处理 |
☑ | 解析 HTTP 响应报文 |
- | 处理重连请求 |
☑ | 处理重定向信息 |
- | 处理 404 逻辑 |
☑ | 数据正常递交给上层 |
- | - |
完成度 | 功能需求 |
---|---|
- | 创建工作队列 |
- | 根据先后顺序将数据递交给拦截器 |
- | - |
完成度 | 功能需求 |
---|---|
☑ | 连接的相关参数初始化 |
☑ | 连接参数的获取、设置 |
- | 初始化线程池 |
- | 创建内部处理的线程 |
- | 创建连接结构 |
- | 租借连接结构 |
- | 回收连接结构 |
- | - |
完成度 | 功能需求 |
---|---|
☑ | 哈希算法的实现 |
☑ | 记录host与IP地址的对应关系 |
☑ | 根据url的host参数查找对应的ip(算是本地的dns缓存) |
- | - |
完成度 | 功能需求 |
---|---|
☑ | 解析url各个字段的参数 |
- | - |