HTTP框架修炼之道(2) | 青训营笔记

134 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第2篇笔记

目录:
    1.再谈HTTP协议
    2.HTTP框架的设计与实现
    3.性能修炼之道
    4.企业实践
    

1.再谈HTTP协议

1)HTTP协议的故事

HTTP:超文本传输,即除了文本的传输之外,还能有图片、音频、视频等媒介的传输。

2)为什么需要协议?

实际上,我们传输的都是01数据流,协议的规范能帮我们更加好地解析这些数据。

image.png

3)协议里有什么?

image.png 元数据:类似对数据的补充描述

3)请求流程

image.png

4)不足与展望

image.png

HTTP 框架的设计与实现

2.1 分层设计

image.png

2.2 应用层设计

面向用用户的,要提供合理的API

image.png

ps:不要试图在文档中说明,很多用户不看文档 23333

2.4 路由设计

image.png

image.png

2.5 协议层设计

1.抽象出合适的接口

2.6 网络层设计

BIO/NIO

1.BIO:会阻塞的 2.NIO:读到一定的数据,然后进行业务逻辑,避免读了一半卡在那里。

go net: BIO 用户管理buffer netpoll:NIO 网络库管理buffer buffer(缓冲区):缓冲区的作用也是用来临时存储数据,可以理解为是I/O操作中数据的中转站。

image.png

2.7 总结

image.png

3.框架的优化

3.1针对网络库的优化

绑定缓存区(大小要合适)

3.2 Headers优化

SIMD加速,并行查找headers的边界

3.4 热点资源池化

企业实践

追求性能

追求易用,减少误用

打通内部生态

文档建设,用户群建设

image.png