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

前端开发之HTTP协议认识

上一篇👉: 前端开发之WebSocket通信

文章目录

  • 1. HTTP 1.0 和 HTTP 1.1 之间有哪些区别
      • 1.连接方面:
      • 2.资源传输优化:
      • 3.缓存机制增强:
      • 4.主机头识别
      • 5.请求方法扩展
  • 2.`HTTP 1.1` 和 `HTTP 2.0` 的区别
      • 1. 二进制分帧层:
      • 2.多路复用技术:
      • 3.数据流和优先级:
      • 4.高效头部压缩:
      • 5. 服务器推送:
      • 队头阻塞现象:HTTP性能的隐形瓶颈

1. HTTP 1.0 和 HTTP 1.1 之间有哪些区别

#特性HTTP 1.0HTTP 1.1
1连接默认使用非持久连接默认使用持久连接,支持连接复用
2资源请求优化无范围请求支持,可能导致带宽浪费引入 Range 头域,支持部分内容请求
3缓存机制依赖 If-Modified-Since, Expires引入更多缓存控制指令,如 Etag, If-Unmodified-Since
4Host字段新增 Host 字段,支持虚拟主机
5请求方法扩展基础请求方法增加了 PUT, HEAD, OPTIONS 等请求方法

1.连接方面:

  • HTTP 1.0默认采用非持久连接,每请求完一个资源就需要重新建立TCP连接,增加了网络延迟。
  • HTTP 1.1 引入持久连接(Keep-Alive)作为默认模式,允许同一TCP连接处理多个请求响应,显著提高了效率。

2.资源传输优化:

  • HTTP 1.0中,客户端即使只需要资源的部分内容,服务器也会发送整个资源,造成带宽浪费。
  • HTTP 1.1增加Range请求头,支持断点续传,仅传输请求区间的内容,有效利用资源。

3.缓存机制增强:

  • HTTP 1.1扩展了缓存控制指令,如ETag、If-Modified-Since等,提供了更灵活和高效的缓存策略,减少了不必要的数据重传。

4.主机头识别

  • HTTP 1.1新添Host字段,使得单一IP地址上的多虚拟主机得以区分,促进了现代Web托管技术的发展。

5.请求方法扩展

  • HTTP 1.1增加了PUT、HEAD、OPTIONS等请求方法,提升了协议的功能性和灵活性,更好地满足了Web应用的需求。

2.HTTP 1.1HTTP 2.0 的区别

#特性HTTP 1.1HTTP/2
1协议格式基于文本的协议二进制协议,更高效的数据传输
2多路复用单个连接上请求响应顺序处理,潜在队头阻塞问题实现真正的多路复用,减少延迟,解决队头阻塞问题
3头信息压缩无头信息压缩引入 HPACK 压缩算法,减少头信息传输大小
4数据流与优先级控制每个请求作为独立数据流,支持优先级设置
5服务器推送功能支持服务器主动推送资源到客户端,提升加载效率

1. 二进制分帧层:

  • HTTP/2采用了全新的二进制格式而非文本格式,将数据和头信息分割成更小的二进制帧,实现了低开销和高效解析。

2.多路复用技术:

  • 解决了HTTP/1.x的“队头阻塞”问题,HTTP/2允许在一个连接上并行处理多个请求和响应,无需等待前一个请求完成,大大提高了并发性能。

3.数据流和优先级:

  • 每个请求或响应作为独立的数据流,携带唯一IDHTTP/2允许为不同的数据流分配优先级,确保关键资源优先传输。

4.高效头部压缩:

  • 引入HPACK压缩算法,HTTP/2减少头部大小,通过索引和差异编码技术,极大降低了重复头部信息的传输成本。

5. 服务器推送:

  • HTTP/2允许服务器预测性地推送客户端可能需要的资源,无需等待额外请求,进一步优化加载时间和用户体验。

队头阻塞现象:HTTP性能的隐形瓶颈

在传统的HTTP/1.x协议中,遵循严格的"请求-应答"模式,构建了一个线性的数据传输通道。这种模式下,每个请求必须等待前一个请求完成其完整的往返过程后才能开始,形成了单一序列的处理队列。形象地说,这是一种“一列纵队过桥”的模式,每辆“车”(请求)必须等待前一辆完全通过桥梁后才能行驶。

原因剖析:

  • 串行依赖:由于协议规定了报文的发送与接收必须遵循严格的顺序,即“先来先服务”,导致请求无法并行处理,形成串行队列。
  • 无优先排序:队列中的请求不分轻重缓急,完全依据到达顺序决定处理时机,缺乏灵活性。
  • 单点瓶颈:一旦队首请求遭遇延迟,比如响应数据大、服务器处理慢等情况,后续所有请求即便已准备好,也只能被动等待,如同交通拥堵中后面的车辆只能跟随停滞。

后果影响:

  • 性能损耗:无辜的后续请求被迫等待,整体响应时间延长,用户体验受损。
  • 资源闲置:网络带宽和服务器处理能力在等待期间未能充分利用,资源效率低下。
  • 放大效应:网络条件不佳或服务器负载较高时,队头阻塞问题更加凸显,可能引发连锁反应,加剧服务性能下降。

因此,队头阻塞成为了限制HTTP/1.x时代Web性能提升的关键因素之一,也是推动HTTP/2引入多路复用、二进制分帧等技术革新的重要背景。

综上所述,从HTTP 1.0HTTP/2,协议的演进集中在提升性能、效率和功能性上,特别是解决了网络延迟、带宽浪费和并发处理能力的瓶颈,为现代Web应用提供了更加坚实的基础

下一篇👉: 前端开发之HTTP3

http://www.lryc.cn/news/372220.html

相关文章:

  • 力扣刷题总结 -- 数组26
  • 无线MODBUS通讯模块在供水系统中的应用
  • linux为什么不是实时操作系统
  • 【STM32】飞控设计
  • MSPM0G3507——引脚分布图
  • MySQL CDC
  • 手把手教你安装 Vivado2022.2(附安装包)
  • 旅行者1号有什么秘密?飞行240多亿公里,为什么没发生碰撞?
  • 如何保护云主机安全
  • postman教程-19-mock测试
  • 纳秒级网络库【二】技术选型
  • ESP32基础应用之esp32连接腾讯云并使用微信小程序控制的智能灯
  • Unity Protobuf+RPC+UniTask
  • 顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-通话时长限制
  • 如何将ai集成到项目中,方法二
  • python的变量的引用与赋值的学习
  • 【FPGA项目】bin文件ram存取回环测试
  • 北航数据结构与程序设计第五次作业选填题复习
  • 【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第40课-实时订阅后端数据
  • 系统集成知识科普:核心原理与关键技术
  • Coze+Discord:打造你的免费AI助手(教您如何免费使用GPT-4o/Gemini等最新最强的大模型/Discord如何正确连接Coze)
  • 「OC」UI练习(二)——照片墙
  • 一手洞悉巴西slot游戏包投放本土网盟CPI广告优势
  • 中国环保网引领元宇宙新纪元 -探索绿色未来
  • 2024最新流媒体在线音乐系统网站源码 音乐社区 多语言开心版
  • 【Java】解决Java报错:FileNotFoundException
  • Seate分布式锁
  • 金融科技助力绿色金融:可持续发展新动力
  • 灾备建设中虚拟机细粒度恢复的含义及技术使用
  • 十种排序方法