为什么要协议?
明确边界——开始/结束
能够携带信息——什么消息/消息类型
中间件需求 配合 Handler 实现一个完整的请求处理生命周期 拥有预处理逻辑与后处理逻辑 可以注册多中间件 对上层模块用户逻辑模块易用
用户不主动调用?
核心:在任何场景下index保持递增
不在一个调用栈上
路由设计
框架路由实际上就是为 URL 匹配对应的处理函数
静态路由: /a/b/c、/a/b/d
参数路由: /a/:id/c (/a/b/c,/a/d/c)、/*all
路由修复: /a/b <-> /a/b/
冲突路由以及优先级: /a/b、/:id/c
匹配 HTTP 方法
多处理函数:方便添加中间件