这是我参与 第五届青训营 伴学笔记创作活动的 第12天
今天总结的是有关HTTP实战
实战-浏览器篇
AJAX之XHR
- XHR: XMLHttpRequest
- readyState
AJAX之Fetch
- XMLHttpRequet的升级版
- 使用Promise模块化设计,Response,Request,Header对象
- 通过数据流处理对象,支持分块读取
实战-node篇
标准库:HTTP/HTTPS
- 默认模块,无需安装其他依赖
- 功能有限/不是十分友好
常用的请求库:axios
- 支持浏览器、nodejs环境
- 丰富的拦截器
实战-用户体验
网络优化:
- CDN是否开启H2的性能对比数据参考
- 预解析、预连接
稳定性:
- 重试是保证稳定的有效手段,但要防止加剧恶劣情况
- 缓存合理使用,作为最后一道防线
扩展-通信方式
websocket
- 浏览器与服务器进行全双工通讯的网络技术
- 典型场景:实时性要求高,例如聊天室
- URL使用 ws:// 或 wss:// 等开头
QUIC
Quick UDP Internet Connection
- 0-RTT建联(首次建联除外)。
- 类似TCP的可靠传输。
- 类似TLS的加密传输,支持完美前向安全。
- 用户空间的拥塞控制,最新的BBR算法。
- 支持h2的基于流的多路复用,但没有TCP的HOL问题。
- 前向纠错FEC。
- 类似MPTCP的Connection migration。
2023/1/29 Day12