HTTP框架 | 青训营笔记

97 阅读2分钟

HTTP框架

一、HTTP

  • 超文本传输协议

1、为什么需要协议

  • 能够携带信息
  • 需要明确边界

2、协议内容

  • 请求行/状态行
1、请求行:
方法名  ;post/get/delete/put/head
 URL     ;
协议版本 ;
///
2、状态行:
2.1、协议版本;
2.2、状态码:
1xx:信息类
2xx:成功
3xx:重定项
4xx:客户端错误
5xx:服务端错误
2.3、状态码描述;
复制代码
  • 请求头/响应头
  • 请求体/响应体

3、请求流程

image.png

4、HTTP版本特征

4.1、HTTP 1.1 (Hypertext Transfer Protocol version 1.1)

  • 是 HTTP 协议的一个版本,是目前使用最广泛的 HTTP 协议版本之一。它是一个文本协议,用于在 Web 应用程序之间传递数据。

4.2、HTTP 1.1 版本带来了一些改进和新特性,包括:

  • 持久连接(Persistent Connections):HTTP 1.1 引入了持久连接机制,允许客户端和服务器之间建立一个 TCP 连接,并在多次请求和响应之间重复使用这个连接,以避免重复建立和关闭连接产生的性能开销。
  • 流水线(HTTP Pipelining):HTTP 1.1 引入了流水线机制,允许客户端在等待服务器响应的同时,继续发送下一次请求,从而减少了等待时间,提高了性能。
  • 分块传输编码(Chunked Transfer Encoding):HTTP 1.1 支持分块传输编码,允许将消息分为多个部分进行传输,从而可以在传输过程中动态生成消息内容或将大文件分成多个部分分批传输。
  • 缓存控制(Cache Control):HTTP 1.1 引入了更加健壮的缓存控制机制,允许服务器或客户端通过 Cache-Control、Expires 和 Last-Modified 等字段来控制缓存行为。
  • 身份验证(Authentication):HTTP 1.1 支持多种身份验证机制,包括基本认证、摘要认证、客户端证书认证等,可以使用户和服务提供商之间的通信更加安全。
  • 更丰富的请求方法(More Request Methods):HTTP 1.1 引入了更多的请求方法,包括 OPTIONS、PUT、DELETE、TRACE、CONNECT 和 PATCH,可以满足更复杂的应用场景。

5、不足与展望

5.1、http1

  • 队头阻塞
  • 明文传输不安全
  • 传输效率低

5.2、http2

  • 多路复用
  • 头部压缩
  • 二进制协议

5.3、QUIC

  • 基于UDP实现
  • 解决队头阻塞
  • 加密减少握手次数
  • 支持快速启动

二、分层设计

image.png

image.png