HTTP框架修炼|青训营

80 阅读1分钟

一、走进HTTP协议

1.HTTP协议(Hypertext Transfer Protocol)

HTTP:超文本传输协议

需要明确的边界: 开始 结束

1.2协议里面有什么

POST /sis HTTP/1.1 请求行

请求行/状态行:方法名、URL、协议版本(状态码/状态码述)

请求头/响应头

请求体/响应体

常用方法名:GET HEAD POST PUT DELETE

1.3请求流程

微信图片_20230802163213.jpg

二、HTTP框架的设计与实现

2.1分层设计

专注性 扩展性 复用性

2.2应用层设计

提供合理的API

冗余性 兼容性 可测性

2.3中间件设计

洋葱模型

微信图片_20230802164757.jpg 日志预处理-> 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)