HTTP(二):HTTP发展史

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42191317/article/details/102767487

简介

HTTP协议目前应用十分广泛,无论是浏览器上网,APP还是听音乐玩游戏,无论是Android,Linux还是Windows,背后都有HTTP协议作为支撑,默默服务。如此可见HTTP协议的重要性,因此本节首先介绍HTTP的发展史。

HTTP/0.9

20 世纪 90 年代初期的互联网世界非常简陋,计算机处理能力低,存储容量小,网速慢,还是一片“信息荒漠”。

网络上绝大多数的资源都是纯文本,很多通信协议也都使用纯文本,所以 HTTP 的设计也不可避免地受到了时代的限制。

这一时期的 HTTP 被定义为 0.9 版,结构比较简单,为了便于服务器和客户端处理,它也采用了纯文本格式。蒂姆·伯纳斯 - 李初设想的系统里的文档都是只读的,所以只允许 用“GET”动作从服务器上获取 HTML 文档,并且在响应请求之后立即关闭连接,功能非常有限。

HTTP/1.0

1993 年,NCSA(美国国家超级计算应用中心)开发出了 Mosaic,是第一个可以图文混排的浏览器,随后又在1995 年开发出了服务器软件 Apache,简化了 HTTP 服务器的搭建工作。

同一时期,计算机多媒体技术也有了新的发展:1992 年发明了 JPEG 图像格式,1995 年 发明了 MP3 音乐格式。

这些新软件新技术一经推出立刻就吸引了广大网民的热情,更的多的人开始使用互联网,研究HTTP并提出改进意见,甚至实验性地往协议里添加各种特性,从用户需求的角度促进 了 HTTP 的发展。

于是在这些已有实践的基础上,经过一系列的草案,HTTP/1.0 版本在 1996 年正式发布。 它在多方面增强了 0.9 版,形式上已经和我们现在的 HTTP 差别不大了,例如:

  • 增加了 HEAD、POST 等新方法
  • 增加了响应状态码,标记可能的错误原因
  • 引入了协议版本号概念
  • 引入了 HTTP Header(头部)的概念,让 HTTP 处理请求和响应更加灵活
  • 传输的数据不再仅限于文本

但HTTP/1.0并非一个标准,只是一个雏形,当时互联网各方还是以自己意图为准。

HTTP/1.1

1995 年,网景的 Netscape Navigator 和微软的 Internet Explorer 开始了著名的“浏览器大战”,都希望在互联网上占据主导地位。这次大战极大地推动了 Web 的发展,HTTP/1.0 也在这个过程中经受了实践检验。于是在“浏览器大战”结束之 后的 1999 年,HTTP/1.1 发布了 RFC 文档,编号为 2616,区别于HTTP/1.0,HTTP/1.1成为了互联网的正式标准,一直到持续到现在还广泛应用。

HTTP/1.1 相比HTTP/1.0,改变并不是很多,经过多年的实践,主要改变如下:

  • 增加了 PUT、DELETE 等新的方法
  • 增加了缓存管理和控制
  • 支持长连接(但默认还是使用短连接)
  • 允许响应数据分块(chunked),利于传输大文件
  • 强制要求 Host 头,让互联网主机托管成为可能

HTTP/2

HTTP/1.1 发布之后,整个互联网世界呈现出了爆发式的增长,涌现出了淘宝、FaceBook,京东等互联网巨头。

而随着互联网的迅速发展,HTTP/1.1也出现了一些缺点,连接速度慢,无法跟上互联网的迅速发展。因此出现了很多优化手段,如常见的切图,JS合并等手段。而这些终究治标不治本,最终Google推出了新的SPDY协议,并Chrome里应用于自家的服务器,开始了新的一轮HTTP改革。

互联网标准化组织以 SPDY 为基础开始制定新版本的 HTTP 协议,终在 2015 年发布了 HTTP/2, RFC 编号 7540。

HTTP/2 的制定充分考虑了现今互联网的现状:宽带、移动、不安全,在高度兼容 HTTP/1.1 的同时在性能改善方面做了很大努力,主要的特点有:

  • 二进制协议,不再是纯文本
  • 可发起多个请求,废弃了 1.1 里的管道
  • 使用专用算法压缩头部,减少数据传输量
  • 允许服务器主动向客户端推送数据
  • 增强了安全性,“事实上”要求加密通信

HTTP/2.0推出到现在已经四年了,但目前应用广泛的还是HTTP/1.1,正在想2.0过渡。

HTTP/3

在 HTTP/2 还处于草案之时,Google 又发明了一个新的协议,叫做 QUIC,继续在 Chrome 和自家服务器里应用,依托它的庞大用户量和数据量,持续地推动 QUIC 协议成为互联网上的标准。

在 2018 年,互联网标准化组织 IETF 提议将“HTTP over QUIC”更名 为“HTTP/3”并获得批准,HTTP/3 正式进入了标准化制订阶段,也许两三年后就会正式发布,到时候我们很可能会跳过 HTTP/2 直接进入 HTTP/3。

总结

  1. HTTP 协议始于三十年前蒂姆·伯纳斯 - 李的一篇论文
  2. HTTP/0.9 是个简单的文本协议,只能获取文本资源
  3. HTTP/1.0 确立了大部分现在使用的技术,但它不是正式标准
  4. HTTP/1.1 是目前互联网上使用广泛的协议,功能也非常完善
  5. HTTP/2 基于 Google 的 SPDY 协议,注重性能改善,但还未普及
  6. HTTP/3 基于 Google 的 QUIC 协议,是将来的发展方向

猜你喜欢

转载自blog.csdn.net/qq_42191317/article/details/102767487
今日推荐