这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
HTTP Method
安全的方法
安全的方法, 不会修改服务器数据 例如:
- GET
- HEAD
- OPTIONS
幂等的方法
同样的请求被执行一次或多次效果与状态都一样, 所有安全的方法都是幂等的
- GET
- HEAD
- OPTIONS
- PUT
- DELETE
缓存
强缓存
本地存在资源缓存直接使用即可
HTTP 头
Expires缓存到期时间戳Cache-Control- 可缓存性
no-cache可以使用缓存, 但是需要协商缓存验证no-store不使用任何缓存
- 到期相关
max-age请求后存储的最长时间 (单位: 秒)
- 重新验证 重新加载
must-revalidate缓存到期后在向原始服务器验证前不能使用, 本地缓存过期后若连接不上服务器也不能使用
- 可缓存性
协商缓存
本地存在缓存, 但是需要与服务端进行通信协商能否使用
HTTP 头
Etag/If-None-Match资源特定版本标识符类似于指纹, 可以参考 Git 的 Commit 中标识Last-Modified/If-Modified-Since最后修改时间
流程
Cookie
仅说下SameSite
SameSite: None | Strict | Lax
- None 无限制, 同站跨站均可
- Strict 严格模式, 完全不能发送给第三方
- Lax 宽松模式, 允许部分第三方请求携带 Cookie
HTTP 2
Frame 帧
HTTP 2 的基本 (最小) 单位, 帧由header与body组成至少包含帧头, 会标识出当前帧所属的数据流, 由二进制编码的形式进行压缩并传输
消息与数据流
消息: 与逻辑请求或响应消息对应的完整一系列帧
数据流: 已建立连接内的双向字节流, 可以承载一条或多条消息
帧可以交错发送, 可以不需要按照顺序来发送, 接收方会重组织
特性
- 建立连接后可以永久使用, 相同目标地址会复用
- 流控制: 接收方可以拒绝发送方发送的大量数据
服务器推送
服务器可以智能分析出接下来需要的文件, 主动去推送这些文件