这是我参与「第四届青训营 」笔记创作活动的第5天
1、什么是HTTP?
HTTP,超文本传输协议,是应用层协议。简单可扩写,无状态,每个请求都是孤立的。
2、method特性
- Safe:安全的,不会修改服务器数据的方法(GET HEAD OPTIONS)
- Idempotent:幂等,同样的请求被执行一次与连续多次的效果是一样的,服务器的状态也是一样的,所有Safe的方法都是Idempotent(GET HEAD OPTIONS PUT DELETE)
3、状态码
4、常用请求头
5、缓存
强缓存
- expires:时间戳
- cache-control:可缓存性:
1>no-cache:协商缓存验证
2>no-store:不能使用任何缓存 - 协商缓存
6、cookie
7、消息
与逻辑请求或响应消息对应的完整的一系列帧。
8、数据流
已建立的连接内的双向字节流,可以承载一条或多条消息。
9、HTTP/2
更快、更稳定、更简单。链接都是永久的,且仅需要每个来源一个链接 流控制:组织发送方向接收方发送大量数据的机制
10、加密
- 对称加密:加密解密使用同一个密钥
- 非对称加密:使用公钥和私钥
11、静态资源
静态资源方案:缓存+CDN+文件名hash
12、跨域解决方案
- CORS
- 代理服务器(同源策略是浏览器的,不是HTTP的)
- Iframe(诸多不便)
向什么地址做了什么动作?
- 使用POST方法
- 目标域名sso.toutiao.com·目标path/quick_login…
SSO:单点登录
13、常用的请求库:axios
支持浏览器、nodejs环境丰富的拦截器
- O-RTT建联(首次建联除外)。类似TCP的可靠传输。
- 类似TLS的加密传输,支持完美前向安全
- 用户空间的拥塞控制,最新的BBR算法。
- 支持h2的基于流的多路复用,但没有TCP的HOL问题。
- 前向纠错FEC。
- 类似MPTCP的Connectionmigration。