HTTP框架修炼之道
1. HTTP协议
HTTP:超文本传输协议
协议结束,协议元数据,Text,协议结束
方便明确的边界,明确携带信息 实现信息传递
2. HTTP框架的设计与实现
专注性,扩展性,复用性
盖尔定律:一个切实可行的复杂系统势必是从一个切实可行的简单系统发展而来,从头开始设计的复杂系统根本不切实可行,无法修修补补让他切实可行。你必须由一个切实可行的简单系统重新开始。
提供合理的API
应用层设计,中间件设计,路由设计,协议层设计,网络层设计(网络库管理)
路由设计
框架路由实际上就是为URL匹配对应的处理函数(静态路由,参数路由,路由修复,冲突路路由以及优先级,匹配HTTP方法,多处理函数)
/a/b/c;/a/:b/c
如何做设计
A明确需求:考虑清楚要解决什么问题,有哪些需求
B业界调研:业界都有哪些解决方案可供参考
C方案权衡:思考不同方案的取舍
D方案评审:相关同学对不同方案做评审
E确定开发:确定最合适的方案进行开发
协议层设计 要抽象出合适的借口,连接上读写数据
3. 性能修炼之道
针对网络库的优化
Go net 存下全部Header 减少系统调用次数 能够复用内存 能够多次读
优势 流式友好,小包性能高
Netpoll 存下全部Header 拷贝出完整的Body
优势 中大包性能高 时延低
4. 企业实践
打开抖音互联网会发生什么(探索计算机网络)一
抖音包含 域名解析DNS 视频下载/HTTP 评论API/HTTP 图片下载/HTTP
1. 刷抖音网络是怎么交互的
网络接入 先让手机访问抖音服务器 互联网接入,路由(路由是改Mac,找到发包口),ARP协议,IP协议,NAT
服务器发包:指HTTP报文,当用户发出访问请求时,服务器会响应用户的访问请求,这时就会返回用户请求的网页数据,会以数据包的形式传输给浏览器,再通过浏览器解析正常展现给用户,而这个接收和发送数据的过程叫做收包和发包
ARP协议 逻辑同网段才能发送ARP,ARP请求广播,ARP应答单播(ARP本质是查找下一跳的MAC,不是请求目标地址。)【MAC,网络设备的物理地址,用于唯一标识网络设备】
IP协议 唯一标识,互联网通用(抖音客户端一个,抖音服务端一个)【网络互连协议】
NAT 解决的是IP地址不足的问题,且能够有效的避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
网络传输
2. 刷抖音为什么又快又稳
3. 总结回顾