1,发展历程
蒂姆·伯纳斯-李,在1989提出在互联网上构建超链接文档系统,并把整个系统称为万维网(World Wide Web),并诞生了HTTP,其中规定:
- URI:统一资源标识符,作为互联网资源的唯一身份
- HTML:超文本标记语言,用来描述超文本文档
- HTTP:超文本传输协议,用来传输超文本内容
1.1 HTTP/0.9
只允许用“GET”动作从服务器上获取HTML文档,并且在响应请求之后立即关闭连接
1.2 HTTP/1.0
1996,在0.9版本上做了增强,发布了1.0版本,增加了许多功能
- 增加了HEAD,POST等方法
- 增加了响应状态码规范,规范了可能的错误原因,如:4xx、5xx
- 引入协议版本号概念
- 引入http header概念,让http处理请求更加灵活
- 传输协议扩展,不仅限于文本
1.3 HTTP/1.1
1999,在1.0版本上增强,发布了1.1版本,规范了HTTP协议必须严格遵循这个标准,在互联网界中立法
- 增加了PUT,DELETE等新方法
- 增加了缓存管理和控制
- 明确链接管理,允许持久链接
- 允许数据响应分块(chunked),利于文件传输
- 强制要求host头,让互联网主机托管成为可能
1.4 HTTP/2.0
2015,在谷歌推动下,发布了2.0版本,考虑了现在互联网,宽带,移动,不安全等问题
- 二进制协议不在是纯文本
- 可以发起多个请求,废弃了1.1的管道
- 允许服务器主动向客户端推送数据
- 使用专用算法压缩头部,减少数据传输量
- 增强安全性,加密通讯
1.5 HTTP/3
2018,谷歌自己革命2.0,推出QUIC协议,定义为HTTP/3
2,什么是HTTP?
HTTP:超文本传输协议,HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范;
P(协议Protocol):HTTP是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。
T(传输Transfer):HTTP是一个在计算机世界里专门用来在两点之间传输数据的约定和规范,是一个“ 双向协议”,数据虽然是在A和B之间传输,但并没有限制只有A和B这两个角色,允许中间有“中转”或者“接力”。
T (文本Text):HTTP传输的不是TCP/UDP这些底层协议里被切分的杂乱无章的二进制包(datagram),而是完整的、有意义的数据,可以被浏览器、服务器这样的上层应用程序处理
H(超Hyper):“超越了普通文本的文本”,它是文字、图片、音频和视频等的混合体,最关键的是含有“超链接”,能够从一个“超文本”跳跃到另一个“超文本”,形成复杂的非线性、网状的结构关系
注 :如有不当之处,联系侵删。文章节选自极客时间–透视HTTP协议