HTTP 的前世今生

因为最近男朋友在准备面试,看网上的资料,觉得很散,碎,而正好我前段时间看了罗剑锋老师的《透视HTTP协议》课程,所以起了整理相关HTTP知识的念头,希望对大家有用,要是不能摘抄啥的,极客时间的人告我一声哈~,这本课程真的蛮好的,推荐大家看,就是需要银子,大家看自己钱包而定,哈哈哈

了解了HTTP的历史之后才能更加系统的学习HTTP协议,知道他为什么出现,解决什么问题,新版本为什么涌现,解决现有的一些什么问题,对HTTP一个整体的认知。

史前时期

20世纪60年代,ARPA建立了ARPA网,它有四个分布在各地的节点,被认为是如今互联网的“始祖”。然后在70年代,基于对ARPA网的实践和思考,研究人员发明了著名的TCP/IP协议。由于具有良好的分层结构和稳定的性能,TCP/IP协议迅速战胜其他竞争对手流行起来,并在80年代中期进入UNIX系统内核,促使更多的计算机假如互联网。

创世纪

1989年,蒂姆·伯纳斯-李发表了一篇论文,提出了在互联网上构建超链接文档系统的构想,在论文中确立了三项关键技术:

  1. URI:即统一资源标识符,作为互联网上资源的唯一身份
  2. HTML:即超文本标记语言,描述超文本文档
  3. HTTP:即超文本传输协议,用来传输超文本

所以在这一年,HTTP诞生了。

HTTP/0.9

HTTP/0.9诞生于20世纪90年代,结构比较简单。为了方便服务器和客户端处理,他采用了纯文本格式。蒂姆·伯纳斯-李最初的设想的系统里面的文档都是只读的,所以只允许用“GET”动作从服务器获取HTML文档,并且在响应请求之后立即关闭连接,功能非常有限。

HTTP/1.0

HTTP/1.0在1996年正式发布。它在多方面增强了0.9版本,形式上已经和现在的HTTP差别不大,例如:

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

但是HTTP/1.0并不是一个“标准”,只是记录已有实践和模式的一份参考文档,不予有实际的约束力,相当于一个备忘录。

HTTP/1.1

HTTP/1.1诞生于1999年,从版本号可以看出,HTTP1.1是对HTTP1.0的小幅度修正。但是一个重要的区别是:他是一个“正式的标准”,而不是一个可有可无的“参考文档”。这意味着今后互联网上所有的浏览器,服务器,网关,代理等,只要用到HTTP协议,就必须严格遵守这个标准,相当于是互联网世界的一个“立法”。

HTTP/1.1主要的表更点有:

  1. 增加了PUT、DELETE等新的方法;
  2. 增加了缓存管理和控制;
  3. 明确了链接管理,允许持久连接;
  4. 允许相应数据分块(chunked),利于传输大文件;
  5. 强制要求Host 头,让互联网主机托管成为可能;

HTTP/2 (SPDY)

2015年发布了HTTP/2,它的指定充分考虑了现今互联网的现状:款待,移动,不安全,在高度兼容HTTP/1.1的同事在性能改善方面做了很大的努力,主要的特点有:

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

虽然HTTP/2也好几年了,但是因为一些原因,他现在的普及率还是比较低,大多数网站使用的还是HTTP/1.1。

HTTP/3 (QUIC)

HTTP/2解决了HTTP层对头阻塞的问题,但是因为HTTP是基于TCP层的,队头阻塞是TCP西医固有的,所以HTTP/2玩出花也没本大解决。所以Google 发明了一个新的QUIC协议让HTTP泡仔QUIC上而不是TCP上,真正解决了队头阻塞的问题。

你一定知道,UDP是一个简单的、不可靠的传输协议,只是对IP协议的一层很薄的保障,和TCP相比,他实现应用的较少。不过正是因为它简单,不需要建连和断连,也就非常灵活,高效,可塑性很气那。所以QUIC协议就选定了UDP,在它智商吧TCO的那一趟连接管理、拥塞窗口、流量控制等搬了过来,取其精华去其糟粕,打造出一个全新的可靠传输协议。

它的特点主要有以下几点:

  1. 基于UDP,更快
  2. 引入了类似HTTP/2的流和多路复用,解决了队头阻塞的问题
  3. 全面采用加密通信,直接应用了TLS1.3

HTTP的前世今生大概就是这个样子了,这篇文章结论性的东西多一些,希望大家对他有个基本的认知,其他的HTTP的东西还蛮多的,后续再分块总结到这里。

猜你喜欢

转载自www.cnblogs.com/pomelox/p/12912054.html
今日推荐