第一个版本:http0.9
只支持GET请求,并且不支持请求头。
只支持传输纯文本内容,不支持图片等格式文件。
第二个版本:http1.0
新增POST等请求方式,并且每次通信都要包含请求头。
不仅支持传输纯文本内容,还可以根据content-type选择多种数据格式,比如视频,音频,图片等。
新增状态码,缓存等功能。支持缓存使得在一定时间内访问同一个网站可以直接访问缓存。
缺陷:每次tcp连接后只能发送一个请求,服务器响应后就会关闭这次连接。想要再次请求数据需要再一次tcp三次握手链接,这样很消耗性能,并且随着页面东西越来越多,这个问题越来越突出。
第三个版本:http1.1
改善http1.0的缺陷:增加了持续连接,每次tcp连接后,可以一直发送请求与响应,客户端与服务器可以主动关闭连接,很大的提高了http的效率。
新增PUT、PATCH、OPTIONS、DELETE请求方式。
新增管道机制(之前请求一次之后,等待响应完成才可以下一次请求;管道机制允许多个请求同时发出,但还是会按照顺序一一响应)。
请求头信息新增Host字段,用于指定域名。
第四个版本:http2.0
头信息和数据体都必须二进制,1.1版本头信息是文本,数据体可以是二进制也可以是文本。
新增了头信息压缩机制。
新增多工机制:运用多路复用的的战术,从1.1版本的同时多请求但一一响应变为同时多请求但不用按顺序一一回应,解决了队头堵塞的问题
新增服务器推送机制:允许服务器没有收到请求就向客户端发送资源,即当我们请求部分资源时服务器可以把相关的可能用到的其他资源一起发回客户端,客户端可以存在本地,需要这些资源时可以直接访问,节省时间。