HTTP协议
即超文本传输协议,超文本指的是除了文本之外还有图片音频等信息的文本
协议内容
发送端
请求头
请求体
接收端
响应头
响应体
HTTP框架
分层设计
应用层:对请求进行抽象
中间件层:预处理,后处理
路由层:提供了原生的操作
协议层:支持的协议
网络层
图示:
应用层设计
和用户打交道,提供合理的api
中间件层设计
实现完整的请求处理生命周期,加上预处理和后处理
洋葱模型:
路由层设计
为URL匹配对应处理函数
处理不同URL:前缀匹配树
可以识别/a/b/c , /a/b/d , /a/:b/d , /a/:b/f
再结合HTTP方法:构造一个map,key为method,value为前缀匹配树
协议层设计
抽象出合适的接口
网络层设计
BIO:读数据时会卡在这里
NIO:监听器监听到足够数据后才会唤醒,目的是让Read读取足够的数据,避免阻塞