HTTP协议 | 青训营笔记

51 阅读2分钟

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

一、什么是HTTP?

HTTP协议(Hyper Text Transfer Protocol)是一种超文本传输协议,所谓超文本就指的是像html,css,js,它可以基于这些文本传输。

  • 它是一种应用层协议,基于TCP协议(谈到TCP就会想到UDP,下面浅谈一下TCP和UDP区别)

小结TCP与UDP的区别:

  1. 基于连接与无连接;
  2. 对系统资源的要求(TCP较多,UDP少);
  3. UDP程序结构较简单;
  4. 流模式与数据报模式
  5. TCP传输可靠,UDP传输不可靠
  6. 应用场合:TCP主要传输少量数据,UDP主要传输大量数据
  7. TCP速度慢,UDP速度快
  • 客户端和服务端可以发送HTTP请求和响应,比如前端在请求头部分携带token,后端从发送过来的请求头中拿到token,然后返回给前端数据
  • 简单可扩展
  • 无状态协议,这是http协议最重要的特征,它不会记录之前的状态,所以对于数据一般会采用本地存储的方式进行存储

二、协议分析

发展历程

image.png

请求方法

image.png

满足要求:

image.png

状态码

image.png

常用请求头

image.png

常用响应头

image.png

三、接口设计

image.png

四、缓存

  • 强缓存:本地资源已由该缓存,直接用
image.png
  • 协商缓存:要与server端验证该缓存是否最新
image.png
  • 缓存过程

image.png

五、cookie相关

image.png

六、HTTP/2概述

  • 帧(frame):HTTP/2通信的最小单位,每个帧都包含帧头,至少也会标识出当前帧所属的数据流
  • 二进制
  • 消息:与逻辑请求或响应消息对应完整的一系列帧
  • 数据流:已建立的连接内的双向字节流,
  • 可以承载一条或多条信息
  • 交错发送,接收方重组织
  • HTTP/2连接都是永久的,而且仅需要每个来源一个连接
  • 流控制:阻止发送方向接受方发送大量数据的机制
  • 服务器推送