这是我参与「第五届青训营 」伴学笔记创作活动的第 4 天
学习HTTP
概念
HTTP为Hyper Text Transfer Protocol超文本传输协议的缩写
- HTTP为应用层协议,基于
TCP协议 - HTTP请求包括请求和响应部分,设计上简单可拓展
- HTTP协议是无状态的
发展历程:
Method
评判点 安全:不会修改服务器数据 幂等:多次执行效果一致
常见状态码
1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态代码。
2xx (成功)
表示成功处理了请求的状态代码。
3xx (重定向)
表示要完成请求,需要进一步操作。** ******通常,这些状态代码用来重定向。
4xx(请求错误)
这些状态代码表示请求可能出错,妨碍了服务器的处理。
5xx(服务器错误)
这些状态代码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。
RESTFul API
- 每个
URI表示一种资源 - 客户端和服务器之间,传递这种资源的某种表现层
- 客户端通过
HTTP method,对服务器端资源进行操作,实现“表现层状态转化”
常见请求头&响应头
请求头
响应头
强缓存&协商缓存
强缓存:浏览器之间在本地缓存获取,不与服务器交互
协商缓存:浏览器发送请求到服务器,服务器判断是否可使用本地缓存
请求缓存流程:
cookie
HTTP2
在HTTP/2中,有两个非常重要的概念,分别是帧(frame)和流(stream)。
-
帧代表着最小的数据单位,每个帧会标识出该帧属于哪个流,流也就是多个帧组成的数据流。
-
HTTP/2在一个TCP连接中可以存在多条流,实现多路复用,可以避免HTTP旧版本中的队头阻塞问题,极大提高传输性能。 -
流控制:阻止发送方向接收方发送数据机制
-
头信息压缩
-
服务器推送
HTTPS
流程
1.客户端提交HTTPS请求
2.服务器响应客户,并把服务器公钥发给客户端
3.客户端验证公钥的有效性
4.有效后,客户端会生成一个会话密钥(一个随机数)
5.用服务器公钥加密这个会话密钥后,发送给服务器
6.服务器收到公钥加密的密钥后,用私钥解密,获取会话密钥
7.客户端与服务器利用会话密钥对传输数据进行对称加密通信
登陆方案
- cookie + session
- JWT(JSON Web Token)
SSO(单点登录):通过cookie、重定向判断用户登录态
实战相关
XHRfetchaxioswebsocketquic
思考总结
本次课程主要以前端的角度来讲解HTTP相关的知识,也回顾了一些计算机网络相关的知识。课程分类以理论、实际网站分析、实践三方面划分。总体上较清晰的梳理了HTTP相关前端的各类知识,并做了一定的拓展。