这是我参与「第五届青训营」伴学笔记创作活动的第5天。
一、知识点总结
- HTTP背景
- HTTP报文
- 场景分析 - 静态资源/登录
- 浏览器/Node发起请求
- 网络优化手段
- 其他通信方式
二、笔记
Hyper Text Transfer Protocol超文本传输协议
- 应用层协议,基于TCP协议
- 请求 响应
- 简单可扩展
- 无状态
报文
Method
Safe安全的:不会修改服务器的数据的方法 GET HEAD OPTIONs
Idempotent幂等:同样的请求被执行一次与连续执行多次的效果是一样的,服务器状态也是一样的,所有safe方法都是idempotent GET HEAD OPTIONS PUT DELETE
状态码
RESTful API
Representational State Transfer 一种API设计风格
常用请求头
类型 缓存相关 Cookie自动带上 来源
常用响应头
缓存
强缓存 直接用
协商缓存 用的时候要确认一下
HTTP/2
更快、更稳定、更简单
帧frame是传输的最小单位
用二进制编码传输,效率更高
消息:逻辑上对应的一系列帧
数据流:双向字节流,可以承载一条或多条消息
可以交错发送
每个目标地址建立的连接可以直接用,是永久的
流控制:阻止发送方向接收方发送大量数据的机制,比如暂停视频
服务器主动推送能力
HTTPS
HTTP+Secure加密
为保证安全,对称加密和非对称加密混用
场景分析
1.缓存
静态资源 性能优化 访问速度
资源变化更新 文件名哈希等 更新
2.登录
跨域 复杂请求 预请求
同源策略是浏览器的安全策略,不是HTTP的
多用代理服务器解决跨域问题
鉴权:刷新以后还是登录状态
单点登录SSO
浏览器发起请求
XHR: XMLHttpRequest
readyState
Fetch: 支持Promise,模块化,支持分块读取
node发起请求
常用请求库axios
网络优化用户体验
1.快:link标签提前声明,数据压缩
2.稳定性:慎重使用重试
拓展:通信方式
WebSocket 延时小,双向通信,URL用ws://或wss://开头,例:网络聊天室
QUIC:Quick UDP Internet Connection 类似TCP的可靠传输。