engine的封装
- router ,存储了url和handlerfunc组成的键值对表,并在serveHTTP的时候传入req头和请求方法拼接成key匹配对应的handlerfunc,run封装http.listenAndServer
- handlerfunc的参数中有Context,调用Context获得请求信息或构造响应
Context的封装
- Context封装了当前请求的参数信息,向handlerfunc或中间件提供了参数结构
- 实现了快速构建string/data/json/html响应的方法
tire树的封装
- 实现动态路由匹配,采用前缀树的方法为router分组
中间件的封装
- 中间件的定义和路由映射的handler一致,一个中间件其实就是一个handler方法,用于一个group上
一次访问流程
先注册路由,调用ServerHTTP方法,server的socket进入listen阶段
受到http请求,分析url并和group进行查询,之后进入访问流程,走一边中间件处理