当前位置: 首页 > news >正文

4. 那在详细说一下 http 2.0 的特点

总结

  1. 二进制协议:文本通信改为二进制帧通信,数据可以划分为更小的帧,便于高效解析和传输。
  2. 多路复用:废除 pipeline 管道,避免了“队头阻塞”问题。允许同一个 TCP 连接同时发送多个请求和协议,提高网络资源利用率和页面加载速度。
  3. 头部信息压缩
  4. 服务端主动推送
  5. 数据流

详细说一下 HTTP/2 的特点

HTTP/2 是 HTTP 协议的第二个主要版本,基于 Google 的 SPDY 协议发展而来,旨在解决 HTTP/1.1 中存在的性能瓶颈。HTTP/2 在协议层面进行了多项优化,显著提升了网页加载速度和网络资源利用率。

1. 二进制分帧协议(Binary Protocol)

  • 描述:HTTP/2 将原本 HTTP/1.x 中的文本格式通信改为**二进制帧(Frame)**通信。
  • 作用
    • 数据被划分为更小的帧(frame),便于高效解析和传输。
    • 每个帧都有明确的类型和流标识符,支持多路复用。
  • 优势
    • 更易于解析,减少解析错误。
    • 提高了协议的可扩展性和性能。

2. 多路复用(Multiplexing)

  • 描述:HTTP/2 允许在同一个 TCP 连接上并发发送多个请求和响应。
  • 与 pipeline 的区别
    • HTTP/1.1 的 pipeline 仍存在“队头阻塞”问题(Head-of-line blocking)。
    • HTTP/2 完全避免了该问题,多个请求可以独立处理、响应。
  • 优势
    • 减少连接数。
    • 显著提升页面加载速度,尤其是资源较多的页面。

3. 首部压缩(Header Compression)

  • 描述:HTTP/2 使用 HPACK 算法对请求和响应头进行压缩。
  • 作用
    • 减少重复头部信息带来的冗余流量。
    • 支持上下文感知的压缩机制。
  • 优势
    • 减少带宽占用。
    • 加快数据传输速度。

4. 服务器推送(Server Push)

  • 描述:服务器可以在客户端未主动请求时,提前将资源推送到客户端缓存中。
  • 应用场景
    • 页面中引用的 CSS、JS 文件。
    • 图片等静态资源。
  • 优势
    • 减少往返次数(RTT)。
    • 提前加载关键资源,加快页面渲染。

5. 数据流(Streams)

  • 描述:HTTP/2 引入“流”的概念,每个请求/响应对应一个独立的数据流。
  • 特性
    • 每个流有唯一 ID。
    • 支持优先级设置,浏览器可指定哪些资源优先加载。
  • 优势
    • 更细粒度地控制资源加载顺序。
    • 提升用户体验。

6. 基于 TLS(通常为 HTTPS)

  • 描述:虽然不是强制要求,但主流实现中 HTTP/2 通常运行在 TLS(加密通道)之上。
  • 优势
    • 提供安全性保障。
    • 被主流浏览器广泛支持。

总结对比表

特性HTTP/1.1HTTP/2
通信格式文本二进制帧
并发请求队头阻塞多路复用,无队头阻塞
首部压缩使用 HPACK 压缩
服务器推送不支持支持
数据流支持流和优先级
连接数量多个并发连接单个连接即可完成所有请求
安全性可选通常基于 HTTPS

http://www.dtcms.com/a/270303.html

相关文章:

  • WinUI3入门16:Order自定义排序
  • ACE-Step:AI音乐生成基础模型
  • 代码详细注释:基于log.h的自定义日志库实现
  • 探索下一代云存储技术:对象存储、文件存储与块存储的区别与选择
  • Splunk练习 Boss of the SOC V1
  • 短视频矩阵系统的崛起:批量发布功能与多平台矩阵的未来
  • LeetCode 21. 合并两个有序链表
  • C#Halcon从零开发_Day18_OCR识别
  • 4. isaac sim4.2 教程-Core API-Hello robot
  • 【计算机组成原理】-CPU章节学习篇—笔记随笔
  • Linux 第一个系统程序 - 进度条
  • (C++)list列表相关基础用法(C++教程)(STL库基础教程)
  • 跨越NLP的三重曲线:从词法到叙事的进化之路
  • 使用python的 FastApi框架开发图书管理系统-前后端分离项目分享
  • huggingface笔记:文本生成Text generation
  • EXCEL(带图)转html
  • 基于LiteOS与SLE的多任务无线控制器项目实战
  • 深圳凭物联网软件开发构建智慧‘城市大脑‘
  • 什么是 3D 文件?
  • UE material advance 学习笔记
  • 【时时三省】(C语言基础)怎样引用指针变量
  • 免安装图片修改软件,一键批量处理
  • 16018.UE4+Airsim仿真环境搭建
  • 详细页智能解析算法:洞悉海量页面数据的核心技术
  • 软件系统测试的基本流程
  • 【PyTorch项目实战】VisRAG:基于视觉的多模态文档检索增强生成(文本+图像)
  • Android 事件分发机制深度解析
  • Android 中的多线程编程全面解析
  • YOLO融合[ICLR2025]PolaFormer中的极性感知线性注意力
  • docker proxy