HTTP 协议的发展历程:从 HTTP/1.0 到 HTTP/2.0

http协议发展历程 HTTP协议的发展历程可以追溯到1989年至1991年间,由Tim Berners-Lee博士和他的团队创造。这个系统起初被命名为Mesh,后来更名为万维网(World Wide Web),并建立在现有的TCP和IP协议基础之上。HTTP作为万维网的基础协议,从一开始的简单版本逐渐发展成了能够传输图片、高分辨率视频和3D效果的现代复杂互联网协议。 阅读详情

HTTP 协议的发展历程:从 HTTP/1.0 到 HTTP/2.0

HTTP(HyperText Transfer Protocol,超文本传输协议)是 Web 的基础协议,用于客户端和服务器之间的通信。从 HTTP/1.0 到 HTTP/2.0,HTTP 协议经历了多次重大改进,每一次升级都旨在解决前一版本的局限性并提升性能。以下是 HTTP 协议的发展历程及其关键改进。


1. HTTP/1.0(1996 年)

HTTP/1.0 是第一个广泛使用的 HTTP 版本,定义了基本的请求-响应模型。

特点:
  • 简单性:每个请求都需要建立一个单独的 TCP 连接,请求完成后连接立即关闭。
  • 无状态性:HTTP/1.0 是无状态的,服务器不会保留客户端的状态信息。
  • 支持有限的请求方法:如 GET、POST 和 HEAD。
  • 响应格式:响应包含状态行、头部和可选的正文。
示例请求:
GET /index.html HTTP/1.0
Host: www.example.com
示例响应:
HTTP/1.0 200 OK
Content-Type: text/html
Content-Length: 1234

<html>...</html>
局限性:
  • 性能问题:每个请求都需要建立和关闭 TCP 连接,导致高延迟。
  • 无连接复用:无法复用连接,增加了网络开销。
  • 不支持 Host 头部:无法支持虚拟主机(一个 IP 地址只能对应一个域名)。

2. HTTP/1.1(1997 年)

HTTP/1.1 是 HTTP/1.0 的改进版本,解决了 HTTP/1.0 的许多问题,并引入了许多新特性。

关键改进:
  1. 持久连接(Keep-Alive):

    • 默认启用持久连接,允许在同一个 TCP 连接上发送多个请求和响应,减少了连接建立和关闭的开销。
    • 通过 Connection: keep-alive 头部启用。
  2. 管道化(Pipelining):

    • 允许客户端在收到上一个响应之前发送多个请求,减少了延迟。
    • 但由于实现复杂性和队头阻塞问题,管道化并未被广泛采用。
  3. Host 头部:

    • 支持虚拟主机,允许一个 IP 地址托管多个域名。
  4. 分块传输编码(Chunked Transfer Encoding):

    • 支持流式传输,服务器可以在不知道内容长度的情况下发送数据。
  5. 缓存控制:

    • 引入了 Cache-Control 和 ETag 等头部,提供了更强大的缓存机制。
  6. 更多请求方法:

    • 新增了 PUT、DELETE、OPTIONS 和 TRACE 等方法。
示例请求:
GET /index.html HTTP/1.1
Host: www.example.com
Connection: keep-alive
示例响应:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
Connection: keep-alive

<html>...</html>
局限性:
  • 队头阻塞(Head-of-Line Blocking):
    • 在同一个连接上,如果前面的请求处理较慢,后续请求会被阻塞。
  • 头部冗余:
    • 每个请求都会发送完整的头部信息,增加了带宽消耗。
  • 并行连接限制:
    • 浏览器通常对同一个域名限制最多 6-8 个并发连接,限制了并行请求的数量。

3. HTTP/2.0(2015 年)

HTTP/2.0 是 HTTP/1.1 的重大升级,旨在解决 HTTP/1.1 的性能瓶颈,并引入了一系列新特性。

关键改进:
  1. 二进制协议:

    • HTTP/2 使用二进制格式传输数据,取代了 HTTP/1.x 的文本格式,提高了解析效率。
  2. 多路复用(Multiplexing):

    • 允许在同一个连接上并行发送多个请求和响应,彻底解决了队头阻塞问题。
  3. 头部压缩(HPACK):

    • 使用 HPACK 算法压缩头部信息,减少了数据传输量。
  4. 服务器推送(Server Push):

    • 服务器可以在客户端请求之前主动推送资源,减少延迟。
  5. 流优先级(Stream Prioritization):

    • 允许客户端为请求设置优先级,确保重要资源优先加载。
  6. 改进的安全性:

    • 虽然 HTTP/2 不强制使用 HTTPS,但主流浏览器只支持基于 TLS 的 HTTP/2。
示例请求:

HTTP/2 的请求和响应格式与 HTTP/1.1 类似,但底层使用二进制帧传输。

示例响应:
HTTP/2 200
content-type: text/html

<html>...</html>
优势:
  • 性能显著提升:多路复用和头部压缩减少了延迟和带宽消耗。
  • 更好的资源管理:服务器推送和流优先级优化了资源加载顺序。
  • 兼容性:HTTP/2 完全兼容 HTTP/1.1 的语义,无需修改应用逻辑。
局限性:
  • 实现复杂性:HTTP/2 的二进制协议和流控制机制增加了实现的复杂性。
  • 依赖 HTTPS:主流浏览器要求 HTTP/2 必须基于 TLS,增加了服务器配置的复杂性。

总结:HTTP 协议的演进

版本发布时间关键特性局限性
HTTP/1.01996简单请求-响应模型,无状态性每个请求需要单独连接,性能差
HTTP/1.11997持久连接、管道化、Host 头部、分块传输、缓存控制队头阻塞、头部冗余、并行连接限制
HTTP/2.02015二进制协议、多路复用、头部压缩、服务器推送、流优先级实现复杂,依赖 HTTPS

从 HTTP/1.0 到 HTTP/2.0,HTTP 协议的每一次升级都旨在解决前一版本的性能瓶颈和功能缺陷。HTTP/2.0 通过引入二进制协议、多路复用和头部压缩等特性,显著提升了 Web 性能,为现代 Web 应用提供了更高效的通信机制。

14、网络切片技术:原理、应用与挑战 本文详细探讨了网络切片技术的原理、应用场景及其在5G网络中的重要性。网络切片作为一种关键的网络架构技术,能够在同一物理网络上创建多个独立的逻辑网络,以满足不同应用对安全性、可靠性和性能的多样化需求。文章深入分析了网络切片在5G、SDN/NFV等技术背景下的发展与挑战,并探讨了其在制造业、交通运输、零售等多个行业的实际应用。此外,还介绍了网络切片的部署流程、未来发展趋势以及相关技术难点,为读者全面了解网络切片技术提供了有价值的参考。 阅读详情

相关推荐

国产PLC实战:用汇川Easy320搞定TCP通信,手把手教你网口转串口控制设备

本文详细解析了如何使用汇川Easy320 PLC实现TCP通信与串口控制,解决工业自动化中设备间通信协议差异问题。通过实战案例和代码示例,展示了Easy320在协议转换、数据解析和串口转发中的高效应用,帮助工程师快速掌握网口转串口控制技术。

weixin_31774841的博客 500

网络协议从入门到底层原理(9)HTTP/1.1的升级改进(HTTP/2、HTTP/3)

HTTP的升级 【网络协议从入门到底层原理】学习笔记汇总

萌宅鹿的技术小屋 1878

概率论—期末复习速成笔记(自用)

概率论期末复习

a200327的博客 2万+

HTTP 第五章 协议升级机制

协议升级不仅仅用于WebSocket,还可以将协议升级为 HTTP 2.0。这个机制是可选的。它并不能强制协议的更改(通常来说这一机制总是由客户端发起的)。如果它们支持新协议,实现甚至可以不利用 upgrade,在实践中,这种机制主要用于引导 WebSocket 连接。WebSocket协议是一个基于HTTP的协议,它在单个TCP连接上进行全双工通信。WebSocket主要功能是用来和服务端进行实时通信。如果想使用从0开始来实现WebSocket,你需要自己实现WebSocket协议,这需要深入理解。

aXin_li的博客 1527

5G移动性管理实战:手把手教你配置NR小区重选参数(附避坑指南)

本文深入解析5G网络移动性管理中的小区重选参数配置实战。通过拆解小区选择与重选的核心机制,结合真实案例,手把手指导如何配置NR小区重选参数,并分享常见避坑指南,帮助工程师优化网络性能,提升用户移动体验。

weixin_29229261的博客 200

从零开始:手把手教你用VOACAP软件预测短波最佳工作频率(OWF)

本文详细介绍了如何使用VOACAP软件预测短波通信的最佳工作频率(OWF),涵盖软件安装、参数配置、电离层模型设置及结果解读。通过实战案例和优化技巧,帮助用户掌握短波传播特性,提升通信效率。特别适合业余无线电爱好者和专业通信人员参考。

weixin_30897079的博客 649

HTTP协议发展史

HTTP 协议始于三十年前蒂姆·伯纳斯 - 李的一篇论文HTTP/0.9 是个简单的文本协议,只能获取文本资源HTTP/1.0 确立了大部分现在使用的技术,但它不是正式标准HTTP/1.1 是目前互联网上使用广泛的协议,功能也非常完善HTTP/2 基于 Google 的 SPDY 协议,注重性能改善,但还未普及HTTP/3 基于 Google 的 QUIC 协议,是将来的发展方向协议版本解决的核心问题解决方式0.9HTML 文件传输确立了客户端请求、服务端响应的通信流程。

jh1141233305的博客 1966

DNN加速器脉动阵列轻量级瞬时故障检测

本文系统综述了面向深度神经网络(DNN)脉动阵列加速器的轻量级瞬时故障检测技术。通过分析比较算法级校验(ABFT)、数值异常监测(剪裁、中值滤波等)、硬件编码检错(AN码、剩余码)以及选择性冗余等方案,指出这些方法能以5%-10%的开销实现对权重和激活比特翻转的高效检测,远低于传统ECC/冗余计算的成本。研究显示,结合多种轻量技术可构建多层防护体系,在保障推理可靠性的同时保持加速器的高性能特性。该成果为安全关键领域的DNN加速器设计提供了重要参考。

欢迎交流! 1074

HTTP1.1升级HTTP2.0

HTTP2.0相比于HTTP1.x有以下几个优点:二进制分帧:HTTP2.0将所有传输的信息分割为更小的消息和帧,并采用二进制格式对它们进行编码,这样可以更好地对数据进行压缩和解压缩,提高传输效率。多路复用:HTTP2.0可以在一个连接上同时传输多个请求和响应,而HTTP1.x需要多个连接才能实现并发传输,这样可以减少TCP连接的数量,提高性能。首部压缩:HTTP2.0使用HPACK算法对首部进行压缩,减少了首部的大小,提高了传输效率。

小电玩 1535

eNSP与我这24H2版本不兼容,路由器40错误。这该怎么处理(操作系统-windows)(相关搜索:虚拟机)

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 4110

【RT-DETR实战】159、改进九:知识蒸馏从YOLOv8教师模型学习

摘要: 本文探讨了知识蒸馏在RT-DETR目标检测模型中的应用挑战与实践经验。作者以YOLOv8作为教师模型,针对特征对齐、损失函数设计和训练策略等核心问题,提出了适配器模块、动态权重调整和多阶段训练等优化方案。文章重点分析了教师模型选择、特征图匹配、损失函数组合等关键环节的实战技巧,并总结了蒸馏模型部署时的注意事项。通过实验验证,作者指出知识蒸馏应关注模型"思维方式"的迁移而非简单特征复制,并强调合理评估指标和教师模型选择的重要性。最后,作者分享了技术迭代中的边际效应认知,为工业场景下的模型优化提供了实用

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 268

HTTP协议的进化史:从HTTP/0.9到HTTP/3,你了解吗?

其次HTTP/3还支持连接迁移,它可以让客户端在不同网络无缝的切换,而tcp在切换网络的时候要不断的重连,无法做到那么丝滑。那就是队头堵塞,HTTP/1.1 所有的数据通信都是按次序完成的,服务器只有处理完一个请求,才会处理下一个请求,如果前面的请求处理特别慢,后面就会有很多请求排队等着,严重影响整个页面加载。属于应用层协议,是万维网数据通信的基础。与前面几个版本相比,HTTP/3采用QUIC协议,QUIC协议是一种基于UDP协议的新型协议,它可以减少连接建立的延迟和丢包率,从而提高网络性能。

cosysun的专栏 978

RK3588网卡出现丢包或者带宽不足的问题验证排查

注意除了有最大的TCP数据接收缓冲,还有/proc/sys/net/core/wmem_max — 最大的TCP数据发送缓冲可以调整,这里暂时没用到,针对具体需要可适当调整。比如把ethx接口中断从默认的cpu0迁移到其它cpu,例如将eth0中断234移到cpu7 (10是16进制, cpu0 =3588的cpu有8个核,4个A55(小核)+4个A76(大核),可以找到对应中断 将中断从默认cpu0核切到cpu7。tcp_rmem:单位是字节,接收缓存区大小,缓存从对端接收的数据,后续会被应用程序读取。

Android/Linux驱动开发传帮带学习,让驱动入门门槛更低! 2030

HTTP 协议详解和版本介绍(HTTP发展历史)

之前有整理过一部分知识点, 一直没有发布, 因为都是有关 前端 方面的零散内容; 现在想想无论分享什么内容都需要慢慢积累, 所以还是决定将之前整理的相关内容验证之后慢慢分享给大家 这个专题就是 HTTP协议原理与实践代码 相关的内容; 不积跬步,无以至千里, 戒焦戒躁 。 好了废话不多说, 直接上代码以及图例(为了让大家方便阅读, 都有自己验证过程的一些图片作为分享) 。 HTTP 协议的发展历史 1. 第一个定稿的 http 协议是 HTTP/0.9 版本 。 2. HTTP/1.0 版本 。 3.

黑木令之佛性 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

HTTP -- 来由

Http -- 来由1,发展历程1.1 HTTP/0.91.2 HTTP/1.01.3 HTTP/1.11.4 HTTP/2.01.5 HTTP/32,什么是HTTP? 1,发展历程 蒂姆·伯纳斯-李,在1989提出在互联网上构建超链接文档系统,并把整个系统称为万维网(World Wide Web),并诞生了HTTP,其中规定: URI:统一资源标识符,作为互联网资源的唯一身份 HTML:超文本标记语言,用来描述超文本文档 HTTP:超文本传输协议,用来传输超文本内容 1.1 HTTP/0.9 只允许

neei的博客 242

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Web基础与HTTP协议

目录一、DNS与域名二、DNS解析2.1 /etc/hosts三、域名四、网页4.1、网页基本概念4.2 HTML二、HTTP协议 一、DNS与域名 1、网络是基于 TCP/IP 协议进行通信和连接的,每一台主机都有一个唯一的标识(固定的 IP 地址),用以区别在网络上成千上万个用户和计算机。网络在区分所有与之相 连的网络和主机时,均采用一种唯一、通用的地址格式,即每一个与网络相连接的计算机和服务器都被指派一个独一无二的地址 七层参考模型和五层,逻辑网卡和物理网卡bond 2、为了保证网络上每台计算机的 I

weixin_44841019的博客 148

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP3.0的区别

1996年5月,HTTP/1.0版本发布,为了提高系统的效率,请注意上面提到的HTTP/1.0中浏览器与服务器只保持短暂的连接,。现在,随便打开一个网页,上面都会有很多图片、视频等资源,HTTP/1.0显然无法满足性能要求。HTTP/1.0 中一个 TCP 连接只能发送一个请求和响应,而。持久连接虽然可以多个请求复用同一个连接,但是每次都需要等到上一个请求响应完成后,才能发送下一个请求。

m0_53327171的博客 2851

网络传输协议之:Http1、Http2、Http3

一、什么是HTTP? HTTP(HyperText Transfer Protocol),是超文本传输协议,是目前互联网上要用最广泛的一种网络协议,所有的 WWW文件都必须遵守该标准。HTTP又使用了可靠的数据传输协议TCP协议,不会产生数据丢失和损坏。(HTTP协议属于应用层协议) HTTP的工作流程 浏览器与服务器建立TCP连接,即三次握手 TCP连接成功,浏览器发出HTTP请求命令 服务端接收请求并返回HTTP响应 服务器关闭连接,即四次挥手 浏览器解析请求的资源 connection:

qq_45923489的博客 1万+

网络协议HTTP/1、HTTP/2 及 HTTP/3详解

HTTP(Hyper Text Transformer Protocol,超文本传输协议)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。它是一个应用层协议,承载于TCP协议之上。

富朝阳的博客 4081

HTTP发展史,HTTP1.1与HTTP2.0的区别

前言 我们知道HTTP是浏览器中最重要且使用最多的协议,它不仅是浏览器与服务端的通信语言,更是互联网的基石。随着浏览器的不断更新迭代,HTTP为了适应技术的更新也在不断进化,学习HTTP的最佳途径就是从浏览器的发展视角来了解HTTP的演进:即将完成使命的HTTP/1、正在向我们走来的HTTP/2、未来的HTTP/3 如果这篇文章有帮助到你,❤️关注+点赞❤️鼓励一下作者,文章公众号首发,关注 前端南玖 第一时间获取最新文章~ HTTP发展史 HTTP 是浏览器与服务端最主要的通信协议 20 世纪 60 年代

南玖的博客 4476

HTTP/1.1,HTTP/2.0和HTTP/3.0 各版本协议的详解(2024-04-24)

HTTP 协议有多个版本,目前广泛使用的是 HTTP/1.1 和 HTTP/2,以及正在逐步推广的 HTTP/3。:支持持久连接,允许多个请求/响应通过同一个 TCP 连接传输,减少了建立和关闭连接的消耗。:基于二进制分帧,支持多路复用,允许同时通过单一的 HTTP/2 连接发起多重的、独立的、双向的交流。:基于 QUIC 协议,旨在减少网络延迟,提高传输速度和安全性。

hap1994的博客 4046

『网络』HTTP/0.9、HTTP/1.0、HTTP/1.1、HTTP/2.0的区别

什么是HTTP协议。HTTP/0.9。HTTP/1.0。HTTP/1.1。HTTP/2.0。

叄拾叄画生 2534

HTTP 协议的发展历程及技术演进

HTTP协议自1989年由蒂姆·伯纳斯-李提出以来,经历了多个版本的演进。最初的HTTP/0.9仅支持简单的GET请求,无状态码和头部信息。HTTP/1.0引入了状态码、头部和多种内容类型,但仍存在每次请求需新建TCP连接的问题。HTTP/1.1通过持久连接、管线化和分块传输编码等改进,显著提升了性能,并支持虚拟主机和更精细的缓存控制。HTTP/2则采用二进制分帧、多路复用和头部压缩等技术,进一步提高了传输效率,并支持服务器推送。尽管HTTP/2解决了应用层的队头阻塞,但传输层的队头阻塞问题在HTTP/3中

Bruce__taotao的博客 2067

【HTTP协议】发展历程

【HTTP协议】发展历程 文章目录【HTTP协议】发展历程HTTP/0.9HTTP/1.0HTTP/1.1延伸 :TCP 是怎样建立/断开连接的?HTTP/2HTTP/3总结 HTTP/0.9 协议定义了客户端发起请求、服务端响应请求的通信模式。请求报文内容只有 1 行,为 GET 加上请求的文件路径。服务端收到请求后返回一个以 ASCII 字符流编码的 HTML 文档。 只允许用“GET”动作从服务器上获取 HTML 文档,并且在响应请求之后立即关闭连接,功能非常有限。 HTTP/1.0 增加了 H

前端学习博客 4548

HTTP/1.0 和HTTP/1.1以及HTTP/2.0 HTTP/3.0的区别

HTTP/1.0是HTTTP协议的第⼀个正式版本主要具有以下特性:引⼊了请求头和响应头,⽀持多种请求⽅法和状态码不⽀持持久连接,每次请求都需要建⽴新的连接。

qq_56734304的博客 1781

HTTP1.0,HTTP1.1,HTTP2.0,HTTP3.0,HTTP的进化之路。

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。HTTP 协议是以 ASCII 码传输,基于请求与响应模式的、无状态的,建立在 TCP/IP 协议之上的应用层规范。。

gwndjsh的博客 1286
上一篇: Node.js 中的 http2 模块的使用
下一篇: Node.js中HTTPS模块应用详解
小灰灰学编程
博客等级 码龄7年 1247粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小灰灰学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值