Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

你知道HTTP都有哪些版本吗? #32

Open
1 task
su-Pro opened this issue May 20, 2020 · 0 comments
Open
1 task

你知道HTTP都有哪些版本吗? #32

su-Pro opened this issue May 20, 2020 · 0 comments

Comments

@su-Pro
Copy link
Owner

su-Pro commented May 20, 2020

你知道HTTP都有哪些版本吗?

蒂姆·伯纳斯-李 万维网

1989 年,任职于欧洲核子研究中心(CERN)的蒂姆·伯纳斯 - 李 创造了万维网,伟大的三个发明:

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

HTTP/0.9原型

20 世纪 90 年代初期(网站都是纯文本格式)的 HTTP 被定义为 0.9 版,结构比较简单,为了便于服务器和客户端处理,它也采用了纯文本格式。最初设想的系统里的文档都是只读的,所以只允许用“GET”动作从服务器上获取 HTML 文档,并且在响应请求之后立即关闭连接,功能非常有限。

GET方法

HTTP/1.0

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

  • HEAD POST 方法
  • 状态码以及错误短语
  • 引入了HTTP头部概念,让HTTP更加灵活
  • 传输的格式不限于文本

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

HTTP/1.1

在“浏览器大战”结束之后的 1999 年,HTTP/1.1 发布了 RFC 文档,编号为 2616,是一个“正式的标准”,而不是一份可有可无的“参考文档”。

增加的有:

  • 新增PUT DELETE 方法
  • 增加了缓存管理和控制
  • 明确了连接管理,允许长连接
  • 允许传输时对数据分块(chunked),利于大文件上传

HTTP/2.0

HTTP/1.1 发展到现在,虽然屹立不倒但存在着一个问题:“连接慢”,导致无法跟上迅猛发展的互联网。
Google推出了新的协议:SPDY并利用自家的生态系统,“挟用户以号令天下”,最终将 SPDY 推上了标准的宝座,互联网标准化组织以 SPDY 为基础开始制定新版本的 HTTP 协议,最终在 2015 年发布了 HTTP/2,RFC 编号 7540。

  • 废弃HTTP1.1 的管道,可以发起多个请求
  • 专用算法对HTTP头部进行压缩,减少数据传输量
  • 允许服务端向客户端发起网络推送数据(推动自家的PWA~)
  • 增强了安全性,要求加密通信(自家的PWA 也必须是HTTPS)

整体感觉就是为了自家的PWA而生,豪横的一盘棋。

HTTP/3.0

这一次还是 Google,而且它要“革自己的命”。同样的套路,最终在 2018 年,互联网标准化组织 IETF 提议将“HTTP over QUIC”更名为“HTTP/3”并获得批准,HTTP/3 正式进入了标准化制订阶段,也许两三年后就会正式发布,到时候我们很可能会跳过 HTTP/2 直接进入 HTTP/3。

  • HTTP1.1 通道???
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant