HTTP出现的背景:
一、走进HTTP协议
① HTTP协议的定义
HTTP:超文本传输协议(Hypertext Transfer Protocol)
② HTTP协议里有什么
③ 请求流程
业务层→服务治理层&中间件层→路由层→协议编(解)码层→传输层
④ 不足与展望
HTTP1:队头阻塞、传输效率低、明文传输不安全
HTTP2:多路复用、头部压缩、二进制协议
QUIC:基于UDP实现、解决队头阻塞、加密减少握手次数、支持快速启动
二、HTTP框架的设计与实现
① 应用层设计(API设计):①可理解性 ②简单性 ③冗余性 ④兼容性 ⑤可测性 ⑥可见性
② 中间件设计(洋葱模型):适用场景:日志记录、性能统计、安全控制、事务处理、异常处理
③ 路由设计(前缀匹配树):框架路由实际上就是为URL匹配对应的处理函数(Handlers)
如何做设计:①明确需求 ②业界调研 ③方案权衡 ④方案评审 ⑤确定开发
④ 协议层设计:抽象出合适的接口
⑤ 网络层设计(网络模型)
三、性能修炼之道与企业实践
① 针对网络库的优化(buffer解析)
两种不同网络库的优势:
(1) go net:流式友好、小包性能高
(2) netpoll:中大包性能高、时延低
② 针对协议的优化(Headers解析、Header key规范化、热点资源池化)
追求性能 、 追求易用,减少误用 、 打通内部生态 、 文档建设 、 用户群建设