HTTP | 青训营笔记

70 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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 最后修改时间

流程

图片.png

Cookie

仅说下SameSite

SameSite: None | Strict | Lax

  • None 无限制, 同站跨站均可
  • Strict 严格模式, 完全不能发送给第三方
  • Lax 宽松模式, 允许部分第三方请求携带 Cookie

HTTP 2

Frame 帧

图片.png

HTTP 2 的基本 (最小) 单位, 帧由headerbody组成至少包含帧头, 会标识出当前帧所属的数据流, 由二进制编码的形式进行压缩并传输

消息与数据流

图片.png

消息: 与逻辑请求或响应消息对应的完整一系列帧

数据流: 已建立连接内的双向字节流, 可以承载一条或多条消息

帧可以交错发送, 可以不需要按照顺序来发送, 接收方会重组织

特性

  • 建立连接后可以永久使用, 相同目标地址会复用
  • 流控制: 接收方可以拒绝发送方发送的大量数据

服务器推送

服务器可以智能分析出接下来需要的文件, 主动去推送这些文件

图片.png

HTTPS 流程图

图片.png

参考

SameSite 设置