当前位置: 首页 > 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协议认识

上一篇👉: 前端开发之WebSocket通信 文章目录 1. HTTP 1.0 和 HTTP 1.1 之间有哪些区别1.连接方面:2.资源传输优化:3.缓存机制增强:4.主机头识别5.请求方法扩展 2.HTTP 1.1 和 HTTP 2.0 的区别1. 二进制分帧层:2.多路…...

力扣刷题总结 -- 数组26

76. 所有奇数长度子数组的和(简单) 题目要求: 给定一个正整数数组 arr ,计算所有奇数长度子数组的和。 子数组定义为原数组中的一个连续子序列。 返回 arr 中 所有奇数长度子数组的和 。 题目分析: 先得到所有子…...

无线MODBUS通讯模块在供水系统中的应用

一、项目背景 我国是人口大国、农业大国,同时也是贫水大国。由于大量工业废水污染了部分河流、地表的浅层水资源,并且有逐年加重的趋势,再加上农业、绿化等灌溉对水资源的大量消耗,这些因素综合作用进一步加剧了我国水资源紧缺的…...

linux为什么不是实时操作系统

Linux为什么不是实时操作系统? 从我们接触Linux系统开始,一直听到的都是它是非实时操作系统,怎么理解这个非实时呢? 我的理解,非实时,就是中断响应不及时,任务调度不及时。那么,真…...

【STM32】飞控设计

【一些入门知识】 1.飞行原理 【垂直运动】 当 mg>F1F2F3F4,此时做下降加速飞行 当 mg<F1F2F3F4,此时做升高加速飞行 当 mgF1F2F3F4 ,此时垂直上保持匀速飞行。 【偏航飞行】 ω 4 ω 2 ≠ ω 1 ω 3 就会产生水…...

MSPM0G3507——引脚分布图

...

MySQL CDC

一、MySQL CDC概念 MySQL CDC(Change Data Capture),即MySQL变更数据捕获,是一种能够捕获MySQL数据库中数据变化(包括插入、更新和删除操作)的技术。这些变化可以实时或准实时地同步到其他系统或服务中&am…...

手把手教你安装 Vivado2022.2(附安装包)

​一、Vivado 2022.2 优势 Vivado 2022.2版本与之前的版本相比,具有以下几个显著的优势: 电源设计管理器(PDM):Vivado 2022.2引入了全新的电源设计管理器(PDM),这是一个下一代功耗评…...

旅行者1号有什么秘密?飞行240多亿公里,为什么没发生碰撞?

旅行者1号有什么秘密?飞行240多亿公里,为什么没发生碰撞? 自古以来,人类就对浩瀚无垠的宇宙充满了好奇与向往。从最初的仰望星空,到如今的深空探测,人类探测宇宙的历史发展可谓是一部波澜壮阔的史诗。 在…...

如何保护云主机安全

在数字化时代,云服务器已成为企业数据存储、处理和传输的重要工具。然而,随着其应用的广泛和深入,云服务器也面临着越来越多的安全威胁。为了应对这些威胁,白名单技术应运而生,成为保护云服务器安全的重要手段。 首先&…...

postman教程-19-mock测试

上一小节我们学习了Postman接口参数化方法,本小节我们讲解一下Postman mock测试的方法。 一、什么叫mock测试 mock测试就是在测试过程中,对某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便于测试的一种测试方法&#xff0c…...

纳秒级网络库【二】技术选型

在十年之前,已经有网络产品实现7纳秒延迟,所以无需质疑是否能够实现,关键问题是:代价是什么。国内不少量化公司在招聘低延迟总线的开发人员,虽然我不知道他们具体的技术选型,从技术底层来看,并没…...

ESP32基础应用之esp32连接腾讯云并使用微信小程序控制的智能灯

文章目录 1. 项目简介1.1 功能接收1.2 使用资源1.3 测试平台 2 腾讯云物联网开发平台3 esp32设备开发3.1 准备参考例程3.2 vscode平台创建测试工程3.3 修改工程 问题总结使用PowerShell命令行终端生成的二维码不能用 1. 项目简介 1.1 功能接收 实现腾讯云创建项目与设备&…...

Unity Protobuf+RPC+UniTask

远程过程调用(RPC)协议详解 什么是RPC协议RPC的基本原理RPC的关键组件RPC的优缺点Protobuf函数绑定CallEncodeRecvDecodeSocket.Send和Recv项目地址 什么是RPC协议 远程过程调用(Remote Procedure Call,简称RPC)是一种…...

顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-通话时长限制

文章目录 前言联系我们场景运用机器人场景普通通话场景 前言 顶顶通呼叫中心中间件限制通话时长有两种写法,分别作用于机器人场景与普通通话场景。 普通场景可分为分机互打、分机外呼手机等。 联系我们 有意向了解呼叫中心中间件的用户,可以点击该链接…...

如何将ai集成到项目中,方法二

上一篇文章:如何将ai集成到radsystems项目中,在项目中引入ai-CSDN博客 上一篇文章内容主要针对于未实现权限分离的项目,这篇文章主要来说一下权限分离的项目怎么做,以及注意的细节。 一、编写前端router.js 二、编写前端askai.vu…...

python的变量的引用与赋值的学习

看代码: a 1 # 初始化变量a,赋值为1 b a # 变量b被赋值为变量a的值,此时b的值也为1 b 2 # 变量b被重新赋值为2 print(a) # 打印变量a的值 执行过程如下: a 1:变量a被赋值为1。b a:变量b被赋值为…...

【FPGA项目】bin文件ram存取回环测试

🎉欢迎来到FPGA专栏~bin文件ram存取回环测试 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒🍹 ✨博客主页:小夏与酒的博客 🎈该系列文章专栏:FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大…...

北航数据结构与程序设计第五次作业选填题复习

选填题考的很多都是基础概念,对于巩固复习一些仡佬拐角的知识点是很有用的。非北航学生也可以来看看这些题,这一节主要是树方面的习题: 一、 我们首先需要知道一个公式 这是证明: 知道了这个公式,我们把题目中的数据…...

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第40课-实时订阅后端数据

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第40课-实时订阅后端数据 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引…...

系统集成知识科普:核心原理与关键技术

目录 1.系统集成的核心原理 1.1 模块化原理 1.1.1 定义: 1.1.2 优势: 1.1.3 实现方式: 1.2 标准化原理 1.2.1 定义: 1.2.2 作用: 1.2.3 实践案例: 1.2.4 制定与遵循: 1.3 协同性原理…...

Coze+Discord:打造你的免费AI助手(教您如何免费使用GPT-4o/Gemini等最新最强的大模型/Discord如何正确连接Coze)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 准备Discord📝 准备Coze🔌 连接💡 测试效果⚓️ 相关链接 ⚓️📖 介绍 📖 你是否想免费使用GPT-4o/Gemini等最新最强的大模型,但又不想花费高昂的费用?本文将教你如何通过Coze搭建Bot,并将其转发…...

「OC」UI练习(二)——照片墙

「OC」UI练习——照片墙 文章目录 「OC」UI练习——照片墙UITapGestureRecognizer介绍照片墙实现 UITapGestureRecognizer介绍 UITapGestureRecognizer是UIKit框架中的一个手势识别器类,用于检测用户在视图上的轻击手势。它是UIGestureRecognizer的一个子类&#x…...

一手洞悉巴西slot游戏包投放本土网盟CPI广告优势

一手洞悉巴西slot游戏包投放本土网盟CPI广告优势 在巴西这片热土上,slot游戏包的投放本土网盟CPI广告是一项既充满挑战又富有机遇的任务。CPI(Cost Per Install)广告模式,即按安装付费,已经成为许多游戏开发商推广产品…...

中国环保网引领元宇宙新纪元 -探索绿色未来

在数字化浪潮的推动下,元宇宙这一概念正逐渐进入公众视野,成为科技与创新交汇的新前沿。作为环境保护的坚定倡导者,中国环保网秉承着推动绿色发展、构建生态文明的使命,正式踏入元宇宙领域,旨在通过高科技手段为环保事…...

2024最新流媒体在线音乐系统网站源码 音乐社区 多语言开心版

本文来自:2024最新流媒体在线音乐系统网站源码 音乐社区 多语言开心版 - 源码1688 应用介绍 简介: 2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版 图片:...

【Java】解决Java报错:FileNotFoundException

文章目录 引言1. 错误详解2. 常见的出错场景2.1 文件路径错误2.2 文件名拼写错误2.3 文件权限问题2.4 文件路径未正确拼接 3. 解决方案3.1 检查文件路径3.2 使用相对路径和类路径3.3 检查文件权限3.4 使用文件选择器 4. 预防措施4.1 使用配置文件4.2 使用日志记录4.3 使用单元测…...

Seate分布式锁

XA模式 在第一阶段资源协调者(TC)会向资源管理者(RM)发出一个准备的请求,RM开始处理自身的业务,处理完成后不提交事务,而是向TC响应一个执行结果,表明自己成功还是失败,如…...

金融科技助力绿色金融:可持续发展新动力

随着全球气候变化和环境问题的日益严重,绿色金融作为推动环境保护和经济可持续发展的重要手段,已经受到越来越多的关注。而金融科技,作为科技与金融深度融合的产物,正以其独特的优势为绿色金融的发展注入新动力。本文将探讨金融科…...

灾备建设中虚拟机细粒度恢复的含义及技术使用

灾备建设中为了考虑虚拟机恢复的效率与实际的用途,在恢复上出了普通的恢复虚拟机,也有其余的恢复功能,比如瞬时恢复,细粒度恢复等。这里谈的就是细粒度恢复。 首先细粒度恢复是什么,这个恢复可以恢复单个备份下来的文…...