感谢大家三连哦!
目录
HTTP发展历程
HTTP(HyperText Transfer Protocol,超文本传输协议)是访问万维网使用的核心通信协议,也是今天所有Web应用程序使用的通信协议。它是为Web
浏览器与Web
服务器之间的通信而设计的,HTTP
协议到目前为止全部的版本可以分为HTTP 0.9
、HTTP 1.0
、HTTP 1.1
、HTTP 2.0
、HTTP 3.0
,其中现在普遍应用的版本是HTTP 1.1
版本,正在推进HTTP 2.0
版本,以及未来的HTTP 3.0
版本。最初,HTTP只是一个为获取基于文本的静态资源而开发的简单协议,后来人们以各种形式扩展和利用它.使其能够支持如今常见的复杂分布式应用程序。
HTTP 0.9#
HTTP 0.9
也被称为单行协议,最初版本的HTTP
协议并没有版本号,后来它的版本号被定位在0.9
以区分后来的版本,HTTP 0.9
极其简单,请求由单行指令构成,以唯一可用方法GET
开头,其后跟目标资源的路径。HTTP 0.9
的响应内容并不包含HTTP
头,这意味着只有HTML
文件可以传送,无法传输其他类型的文件,也没有状态码或错误代码,出现异常时一个特殊的包含问题描述信息的HTML
文件将被响应返回。
特点#
- 只有一个请求行,并没有
HTTP
请求头和请求体。 - 服务器没有返回头信息,只返回数据信息。
- 第三个是返回的文件内容是以ASCII 字符流来传输的,因为都是HTML 格式的文件,所以使用ASCII 字节码来传输是最合适的。
HTTP 1.0#
HTTP 1.0
构建了可扩展性,为了满足传输多种类型文件的需求,为了让客户端和服务器能更深入地交流,HTTP 1.0
引入了请求头和响应头,它们都是以为Key-Value
形式保存的,在HTTP
发送请求时,会带上请求头信息,服务器返回数据时,会先返回响应头信息。
特点#
- 增加了 HEAD、POST 等新方法;
- 增加了响应状态码,标记可能的错误原因;
- 引入了协议版本号概念;
- 引入了 HTTP Header(头部)的概念,让 HTTP 处理请求和响应更加灵活;
- 传输的数据不再仅限于文本。
HTTP 1.1#
HTTP 1.1
是标准化的协议,HTTP 1.1
消除了大量歧义内容并引入了多项改进。
特点#
- 增加了 PUT、DELETE 等新的方法;
- 增加了缓存管理和控制;
- 明确了连接管理,允许持久连接;
- 允许响应数据分块(chunked),利于传输大文件;
- 强制要求 Host 头,让互联网主机托管成为可能。
HTTP 2.0#
HTTP 2.0
拥有更优异的表现,现网页愈渐变得的复杂,甚至演变成了独有的应用,媒体的播放量,增进交互的脚本大小也增加了许多,更多的数据通过HTTP
请求被传输,由此HTTP 2.0
为网络效率做了大量的优化。
特点#
- 二进制协议,不再是纯文本;
- 可发起多个请求,废弃了 1.1 里的管道;
- 使用专用算法压缩头部,减少数据传输量;
- 允许服务器主动向客户端推送数据;
- 增强了安全性,“事实上”要求加密通信。
HTTP 3.0#
HTTP 3.0
目前处于制订和测试阶段,是未来的全新的HTTP
协议,HTTP 3.0
协议运行在QUIC
协议之上,是在UDP
的基础上实现了可靠传输,权衡传输速度与传输可靠性并加以优化,使用UDP
将避免TCP
的队头阻塞问题,并加快网络传输速度,但同样需要实现可靠传输的机制,HTTP 3.0
不是HTTP 2.0
的拓展,HTTP 3.0
将会是一个全新的协议。