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

http的发展史

http的发展史

HTTP(HyperText Transfer Protocol,超文本传输协议)是用于在 Web 上传输数据的协议。自从 1990 年代初期首次引入以来,HTTP 已经经历了多个版本的演变和改进。以下是 HTTP 的发展历史:

HTTP/0.9

  • 引入时间: 1991 年
  • 特点:
    • 最初的 HTTP 版本,设计非常简单。
    • 仅支持 GET 请求。
    • 没有 HTTP 头部,服务器响应仅包含纯文本内容。
    • 主要用于传输 HTML 文档。

HTTP/1.0

  • 引入时间: 1996 年
  • 特点:
    • 引入了 HTTP 头部,支持更多的请求方法(如 POST 和 HEAD)。
    • 支持 MIME 类型,使得传输的内容不仅限于纯文本。
    • 每个请求/响应对使用一个独立的 TCP 连接,导致连接开销较大。

HTTP/1.1

  • 引入时间: 1997 年
  • 特点:
    • 持久连接(Persistent Connections):默认情况下,连接在多个请求/响应对之间保持打开状态,减少了连接开销。
    • 管道化(Pipelining):允许在同一个连接上同时发送多个请求,而不必等待前一个请求的响应。
    • 增加了更多的请求方法(如 PUT、DELETE、OPTIONS 等)。
    • 支持分块传输编码(Chunked Transfer Encoding),允许服务器在响应内容长度未知时逐块发送数据。
    • 增强了缓存控制和虚拟主机支持。

HTTP/2

  • 引入时间: 2015 年
  • 特点:
    • 二进制协议:HTTP/2 使用二进制格式传输数据,而不是 HTTP/1.x 的文本格式,提高了传输效率。
    • 多路复用(Multiplexing):在一个 TCP 连接上同时发送多个请求和响应,消除了 HTTP/1.x 中的队头阻塞问题。
    • 头部压缩(Header Compression):使用 HPACK 算法压缩 HTTP 头部,减少了传输的数据量。
    • 服务器推送(Server Push):允许服务器在客户端请求之前主动推送资源,提高了页面加载速度。

HTTP/3

  • 引入时间: 2020 年(草案阶段)
  • 特点:
    • 基于 QUIC 协议:HTTP/3 使用基于 UDP 的 QUIC 协议,而不是基于 TCP 的 HTTP/2,提供了更快的连接建立和更好的性能。
    • 多路复用:与 HTTP/2 类似,HTTP/3 也支持多路复用,但由于 QUIC 的特性,进一步减少了延迟和队头阻塞问题。
    • 内置加密:QUIC 协议内置了 TLS 加密,提供了更高的安全性。

发展历程总结

  • HTTP/0.9: 最初的简单协议,仅支持 GET 请求。
  • HTTP/1.0: 引入了 HTTP 头部和更多的请求方法,但每个请求/响应对使用独立的 TCP 连接。
  • HTTP/1.1: 引入持久连接和管道化,增强了缓存控制和虚拟主机支持,成为最广泛使用的 HTTP 版本。
  • HTTP/2: 使用二进制协议、多路复用、头部压缩和服务器推送,提高了传输效率和性能。
  • HTTP/3: 基于 QUIC 协议,提供了更快的连接建立和更好的性能,进一步减少了延迟和队头阻塞问题。

通过理解 HTTP 的发展历史,你可以更好地掌握 Web 技术的演变和改进,从而在实际项目中选择合适的 HTTP 版本和优化传输性能。


http://www.kler.cn/a/389783.html

相关文章:

  • AI绘画经验(stable-diffusion)
  • ubuntu cmake CPack将第三方库进行打包
  • 图论基本术语
  • Stored procedures in PostgreSQL
  • Debezium日常分享系列之:异步 Debezium 嵌入式引擎
  • sql专题 之 sql的执行顺序
  • Spring Boot与工程认证:计算机课程管理的现代化
  • 【ET8框架进阶】HybridCLR打包丢失元方法问题MissingMethodException:生成LinkXml增加元方法
  • 车间管理|基于SprinBoot+vue工厂车间管理系统设计与实现(源码+数据库+文档)
  • Chromium 中chrome.contextMenus扩展接口定义c++
  • QT模态对话框和非模态对话框区别以及常用标准对话框
  • 【QT】Qt网络
  • 【CSS】什么是BFC?
  • 2.5_XXE(XML外部实体注入)
  • 杨辉三角-一维数组与二维数组解法
  • 图片搜索引擎,来快速实现一个高性能的本地图片搜索引擎
  • Ansys EMC Plus:以 Touchstone 格式计算和导出 S 参数
  • Web3推动社交媒体的去中心化转型:挑战与机遇
  • FFmpeg —— 通过AES-CTR方式对视频加密解密(详细介绍通过FFmpeg指令、代码方式进行加密解码,附源码)
  • Information Server 中共享开源服务中 kafka 的__consumer_offsets目录过大清理
  • 第二周训练
  • 计算机网络系列课程《网络解释》
  • 【力扣】05最长的回文子串
  • 【C++ 算法进阶】算法提升十四
  • Python之魔术方法笔记
  • Spring Boot集成SQL Server快速入门Demo