学习HTTP | 青训营笔记

80 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天

学习HTTP

概念

HTTPHyper Text Transfer Protocol超文本传输协议的缩写

  1. HTTP为应用层协议,基于TCP协议
  2. HTTP请求包括请求和响应部分,设计上简单可拓展
  3. HTTP协议是无状态的

发展历程:

image.png

Method

image.png

评判点 安全:不会修改服务器数据 幂等:多次执行效果一致

常见状态码

1xx(临时响应)

表示临时响应并需要请求者继续执行操作的状态代码。

2xx (成功)

表示成功处理了请求的状态代码。

3xx (重定向)

表示要完成请求,需要进一步操作。** ******通常,这些状态代码用来重定向。

4xx(请求错误)

这些状态代码表示请求可能出错,妨碍了服务器的处理。

5xx(服务器错误)

这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

RESTFul API

  1. 每个URI表示一种资源
  2. 客户端和服务器之间,传递这种资源的某种表现层
  3. 客户端通过HTTP method,对服务器端资源进行操作,实现“表现层状态转化”

常见请求头&响应头

请求头 image.png

响应头 image.png

强缓存&协商缓存

强缓存:浏览器之间在本地缓存获取,不与服务器交互

协商缓存:浏览器发送请求到服务器,服务器判断是否可使用本地缓存

image.png

请求缓存流程:

截屏2022-04-06 16.41.33.png

cookie

image.png

HTTP2

HTTP/2中,有两个非常重要的概念,分别是帧(frame)和流(stream)。

  1. 帧代表着最小的数据单位,每个帧会标识出该帧属于哪个流,流也就是多个帧组成的数据流。

  2. HTTP/2在一个TCP连接中可以存在多条流,实现多路复用,可以避免HTTP旧版本中的队头阻塞问题,极大提高传输性能。

  3. 流控制:阻止发送方向接收方发送数据机制

  4. 头信息压缩

  5. 服务器推送

HTTPS

流程

1.客户端提交HTTPS请求

2.服务器响应客户,并把服务器公钥发给客户端

3.客户端验证公钥的有效性

4.有效后,客户端会生成一个会话密钥(一个随机数)

5.用服务器公钥加密这个会话密钥后,发送给服务器

6.服务器收到公钥加密的密钥后,用私钥解密,获取会话密钥

7.客户端与服务器利用会话密钥对传输数据进行对称加密通信

image.png

登陆方案

  1. cookie + session
  2. JWT(JSON Web Token)

SSO(单点登录):通过cookie、重定向判断用户登录态

实战相关

  1. XHR
  2. fetch
  3. axios
  4. websocket
  5. quic

思考总结

本次课程主要以前端的角度来讲解HTTP相关的知识,也回顾了一些计算机网络相关的知识。课程分类以理论、实际网站分析、实践三方面划分。总体上较清晰的梳理了HTTP相关前端的各类知识,并做了一定的拓展。