这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
一、什么是HTTP?
HTTP协议(Hyper Text Transfer Protocol)是一种超文本传输协议,所谓超文本就指的是像html,css,js,它可以基于这些文本传输。
- 它是一种应用层协议,基于TCP协议(谈到TCP就会想到UDP,下面浅谈一下TCP和UDP区别)
小结TCP与UDP的区别:
- 基于连接与无连接;
- 对系统资源的要求(TCP较多,UDP少);
- UDP程序结构较简单;
- 流模式与数据报模式
- TCP传输可靠,UDP传输不可靠
- 应用场合:TCP主要传输少量数据,UDP主要传输大量数据
- TCP速度慢,UDP速度快
- 客户端和服务端可以发送HTTP请求和响应,比如前端在请求头部分携带token,后端从发送过来的请求头中拿到token,然后返回给前端数据
- 简单可扩展
- 无状态协议,这是http协议最重要的特征,它不会记录之前的状态,所以对于数据一般会采用本地存储的方式进行存储
二、协议分析
发展历程
请求方法
满足要求:
状态码
常用请求头
常用响应头
三、接口设计
四、缓存
- 强缓存:本地资源已由该缓存,直接用
- 协商缓存:要与server端验证该缓存是否最新
- 缓存过程
五、cookie相关
六、HTTP/2概述
- 帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
- 二进制
- 消息:与逻辑请求或响应消息对应完整的一系列帧
- 数据流:已建立的连接内的双向字节流,
- 可以承载一条或多条信息
- 交错发送,接收方重组织
- HTTP/2连接都是永久的,而且仅需要每个来源一个连接
- 流控制:阻止发送方向接受方发送大量数据的机制
- 服务器推送