一、走进HTTP协议
1.HTTP协议(Hypertext Transfer Protocol)
HTTP:超文本传输协议
需要明确的边界: 开始 结束
1.2协议里面有什么
POST /sis HTTP/1.1 请求行
请求行/状态行:方法名、URL、协议版本(状态码/状态码述)
请求头/响应头
请求体/响应体
常用方法名:GET HEAD POST PUT DELETE
1.3请求流程
二、HTTP框架的设计与实现
2.1分层设计
专注性 扩展性 复用性
2.2应用层设计
提供合理的API
冗余性 兼容性 可测性
2.3中间件设计
洋葱模型
日志预处理-> Mertrics中间件预处理->业务逻辑->后处理
核心逻辑与通用逻辑分离
2.4路由设计(前缀匹配树)
框架路由:实际上是为URL匹配相应的处理函数(Handlers)
静态路由:/a/b/c
参数路由:/a/:id/c
路由修复:/a/b <->
冲突路由
Map method 前缀树|头节点(*Node)
如何做设计
1.明确需求
2.业界调研
3.方案权衡
4.方案评审
5.确定开发
2.5协议层设计
抽象出合适接口
2.6网络层设计
BIO:用户管理buff
NIO:注册一个监听器,当要求完成时,再实现function(网络库管理buffer)