HTTP框架修炼之道学习笔记
什么是HTTP协议
HTTP:Hyper Text Thansfer Protocal,超文本传输协议。
HTTP是网络层的协议,负责指定客户端如何给服务器发送信息以及服务器如何响应。
网络模型
OSI七层网络模型
- 应用层(Application)
- 表示层(Presentation)
- 会话层(Session)
- 传输层(Transport)
- 网络层(Network)
- 数据链路层(Data Link)
- 物理层(Physical)
TCP/IP四层网络模型
- 应用层
- 传输层
- 网络层
- 数据链路层
系统的分层设计
应用层(Application)
应用层:提供合理的API供下层调用。
应用层包含Context、Request、Response、Handler。
中间件(Middleware)
中间件:拥有预处理逻辑及后处理逻辑,配合Handler实现一个完整的请求处理生命周期。
中间件包含Recovery、Circuibreak、Timeout、Access log。
路由(Route)
路由:为URL匹配相应的处理函数。
路由包含Add、Find、Route Tree、Route Group。
协议层(Codec)
协议层:抽象出合适的接口。
协议层包含Websocket、HTTP1、Quic、HTTP2。
网络层(Transport)
网络层:构建网络模型。
网络层包含Netpoll、Go net。
个人思考与总结
Q:为什么网络设计时采用分层结构?
A:层与层之间相互独立,在每层有修改时不用修改其他层,增加了复用性和稳定性。