HTTP实用指南|青训营笔记

83 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第5天

1、什么是HTTP?

  HTTP,超文本传输协议,是应用层协议。简单可扩写,无状态,每个请求都是孤立的。

2、method特性

  • Safe:安全的,不会修改服务器数据的方法(GET HEAD OPTIONS)
  • Idempotent:幂等,同样的请求被执行一次与连续多次的效果是一样的,服务器的状态也是一样的,所有Safe的方法都是Idempotent(GET HEAD OPTIONS PUT DELETE)

3、状态码

image.png

4、常用请求头

image.png

5、缓存

强缓存

  • expires:时间戳
  • cache-control:可缓存性:
    1>no-cache:协商缓存验证
    2>no-store:不能使用任何缓存
  • 协商缓存

6、cookie

image.png

7、消息

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

8、数据流

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

9、HTTP/2

更快、更稳定、更简单。链接都是永久的,且仅需要每个来源一个链接 流控制:组织发送方向接收方发送大量数据的机制

10、加密

  • 对称加密:加密解密使用同一个密钥
  • 非对称加密:使用公钥和私钥

11、静态资源

静态资源方案:缓存+CDN+文件名hash

12、跨域解决方案

  • CORS
  • 代理服务器(同源策略是浏览器的,不是HTTP的)
  • Iframe(诸多不便)

image.png

向什么地址做了什么动作?

SSO:单点登录

13、常用的请求库:axios

支持浏览器、nodejs环境丰富的拦截器

  • O-RTT建联(首次建联除外)。类似TCP的可靠传输。
  • 类似TLS的加密传输,支持完美前向安全
  • 用户空间的拥塞控制,最新的BBR算法。
  • 支持h2的基于流的多路复用,但没有TCP的HOL问题。
  • 前向纠错FEC。
  • 类似MPTCP的Connectionmigration。