xfy911
|
832ff3dbf6
|
docs(plan): 更新 HTTP/2 完成状态,调整待办优先级
|
2026-06-04 14:44:55 +08:00 |
|
xfy911
|
42879cdafd
|
docs(plan): 记录 HTTP/2 骨架完成状态
|
2026-06-04 14:40:27 +08:00 |
|
xfy911
|
cffb433c1e
|
docs(plan): 更新 TLS/HTTPS 完成状态,调整待办优先级
|
2026-06-04 14:36:16 +08:00 |
|
xfy911
|
8f9d420447
|
docs(plan): 更新发展规划,记录本轮测试扩展
- 单元测试总数:125 个(server 从 5→17)
- 更新待办池优先级和状态
|
2026-06-04 09:04:54 +08:00 |
|
|
|
ca7b33aa10
|
docs(plan): 添加 Windows 兼容性详细技术方案
- 描述目标:在 Windows 上编译运行 cocoon
- 分析核心发现:coco 库已有 Windows 支持,问题在 cocoon 的 POSIX 依赖
- 提出方案:引入 platform.h + platform.c 平台抽象层
- 列出关键 API 映射:POSIX → Windows 对照表
- 记录零拷贝策略:Windows 暂时回退到 read+send,后续用 TransmitFile 优化
- 指定执行方式:Subagent-Driven 逐个 Task 实现
|
2026-06-04 08:16:27 +08:00 |
|
|
|
0fd5ebc043
|
docs(plan): 在待办池中添加 Windows 兼容性任务
将 Windows 兼容性标记为 [高] 优先级,插入到待办池首位。
当前 cocoon 仅支持 Linux/macOS,Windows 支持是重要演进方向。
|
2026-06-04 08:16:11 +08:00 |
|
xfy911
|
ea5436febb
|
feat(compression): 添加 Brotli 压缩支持,优先于 Gzip
- static.c: 新增 brotli_compress(),使用 libbrotlienc(质量 11,窗口 22)
- static_serve_file(): 优先 Brotli,回退 Gzip,二进制文件跳过
- http.c: 解析 Accept-Encoding: br,http_request_t 新增 accept_brotli
- cocoon.h: cocoon_config_t 新增 brotli_enabled(默认 true)
- config.c/h: 解析 brotli_enabled JSON 字段,config_merge() 新增 has_brotli_enabled
- main.c: --no-brotli 命令行选项
- server.c: 连接结构体新增 brotli_enabled
- Makefile: 链接 -lbrotlienc
- 单元测试: test_static.c 新增 4 个 Brotli 测试;test_config.c 新增 brotli 配置测试
- 集成测试: 新增 5 项 Brotli 测试(br 压缩、优先策略、图片不压缩)
- cocoon.json: 添加 brotli_enabled 字段
- README: 更新特性描述、curl 示例、命令行参数、路线图
- 113 个单元测试全部通过,37 项集成测试全部通过
|
2026-06-04 06:19:42 +08:00 |
|
xfy911
|
3801f3ac0d
|
feat(config): 添加 JSON 配置文件支持 + gzip_enabled 控制 + README 修正
- config.c/config.h: 极简 JSON 解析器,支持数字/字符串/布尔//注释
- cocoon_config_t 新增 gzip_enabled 字段(默认 true)
- main.c: -c <file> 加载配置,--no-gzip 禁用压缩,命令行覆盖配置
- 修复 -r 参数 strdup 崩溃(避免 free 野指针)
- 修复 signal handler 双重 free 问题
- 单元测试: test_config.c 17 个测试全部通过
- 集成测试: 32 项全部通过
- README 修正过时描述(配置方式、安全设计、-v 说明)
|
2026-06-04 03:14:32 +08:00 |
|
xfy911
|
c036615d58
|
chore: 添加 test_server 到 gitignore + 更新待办池
- .gitignore: 补充 tests/unit/test_server,避免误提交编译产物
- .cocoon-plan.md: 新增 signal handler cleanup bug 和中文注释完善到待办池
|
2026-06-04 00:29:31 +08:00 |
|
xfy911
|
19c97ae6a9
|
test(config): 补充边界与异常路径测试
- test_load_invalid_field_type: 字段类型非法(port 为字符串),验证不 crash
- test_load_log_level_invalid: 非法 log_level 值保持默认 INFO
- test_load_nested_ignored: 嵌套对象——极简解析器返回 false 但不 crash
- test_load_array_ignored: 数组——同上,不 crash 即可
- test_merge_cmdline_null_root_dir: cmdline root_dir 为 NULL 时不覆盖 base
|
2026-06-04 00:24:29 +08:00 |
|
xfy911
|
d5b8782a1b
|
feat: 添加 Unity 单元测试框架
- 引入 Unity 测试框架 (ThrowTheSwitch)
- 创建 test_http.c (35 个测试): 请求解析、响应格式化、MIME 类型、内存管理
- 创建 test_static.c (31 个测试): 压缩判断、时间处理、ETag、路径安全、HTML 转义、gzip、socket 层
- 更新 Makefile: make unit-test 一键编译运行
- 66 个测试全部通过,集成测试保持 30 项通过
|
2026-06-03 23:53:22 +08:00 |
|
xfy911
|
bbc45d0735
|
feat(post): 添加 POST 请求体解析支持
- http_request_t 新增 body / body_len / content_type 字段
- http.c 解析 Content-Type 头,新增 http_request_free 释放 body
- server.c 新增 conn_read_body 从 socket 读取请求体(8MB 上限)
- server.c 新增 handle_post_request 返回 JSON 回显
- 支持 application/json 直接回显
- 支持 application/x-www-form-urlencoded 字符串回显
- 其他类型返回基本信息
- 8MB 请求体上限(HTTP_MAX_BODY),超限返回 413
- 集成测试新增 3 项 POST 测试:JSON 回显、表单回显、PUT 405
- 30 项测试全部通过
- README 更新:添加 POST 特性、curl 示例、路线图更新
- send_all 从 static 改为全局可见,供 server.c 复用
Phase 2 全部完成:缓存/超时/日志/gzip/测试/压测/POST
|
2026-06-03 21:24:03 +08:00 |
|
xfy911
|
b6beb8bb9c
|
feat(tests): 添加集成测试套件 + 性能基准 + 更新文档
- 新增 tests/ 目录:
- integration_test.sh: 27 项 curl/bash 集成测试(GET/HEAD/404/Range/304/gzip/MIME/目录浏览/路径防护)
- benchmark.sh: wrk 压测脚本,支持单线程和多线程模式
- fixtures/: 测试用静态资源(HTML/CSS/JS/JSON/PNG)
- Makefile 新增 test / bench 快捷目标
- README 全面更新:
- 补充 Gzip/缓存/超时/日志等已实现特性
- 更新命令行参数(-m/-o/-l/-v)
- 添加性能基准表格(~16K RPS / ~60μs 延迟)
- 路线图标记已完成项
- .cocoon-plan.md 更新 Phase 2 进度
|
2026-06-03 21:15:05 +08:00 |
|
xfy911
|
e482e52658
|
docs(plan): 更新 Phase 2 进度 — gzip 压缩已完成 + 压测数据
- 标记 gzip 压缩为已完成(3086B → 1282B,压缩率 41%)
- 记录单线程压测数据:15K RPS,64us 平均延迟,47MB/s 传输
|
2026-06-03 18:19:57 +08:00 |
|
xfy911
|
0a71365fac
|
docs(plan): 更新 Phase 2 进度 — 超时/日志已完成,gzip 待集成
|
2026-06-03 18:19:23 +08:00 |
|
xfy911
|
aebacc26ef
|
docs(plan): 更新进度 — HTTP 缓存已完成
|
2026-06-03 17:38:59 +08:00 |
|
xfy911
|
a30fcf6ee1
|
docs(plan): 添加自主发展规划文件
|
2026-06-03 17:22:54 +08:00 |
|