HTTP协议经过了好几个版本的演进,具体如下:
HTTP/0.9:这是最早的HTTP协议版本,于1991年发布。它非常简单,只支持GET请求,并且只能请求HTML格式的文本文件。
HTTP/1.0:于1996年发布。它引入了多种新的功能,如POST请求、请求头、响应头、状态码、缓存控制等。
HTTP/1.1:于1999年发布。它是HTTP协议的最常用版本,它引入了持久连接、管道化请求、分块传输编码、虚拟主机、HTTP头部压缩等特性,以及更多的状态码。
HTTP/2:于2015年发布。它引入了二进制传输、头部压缩、流控制、服务器推送等特性,以提高性能和安全性。
HTTP/3:于2020年发布。它是HTTP协议的最新版本,基于QUIC协议,支持多路复用、0-RTT连接建立、头部压缩、流控制等特性,以提高性能和安全性。
作为JAVA WEB开发常用的通信协议,了解HTTPx协议对我们的重要性不言而喻的,对我们应用的性能和安全性至关重要。0.9版本鄙人没接触过,资历太浅,看只支持GET,感觉好原始啊。接触HTTP协议从1.0开始的,那个时候都是短链接,做一些实时效果都是定时请求,消耗了很多浏览器客户端资源,有时候会卡死,当然卡死不单单是定时轮询的问题。1.1可以说使用到现在了,协议很完善,持久连接保证了连接的高效使用,压缩技术可以减少网络带宽的消耗。还有https中使用到的各种安全协议的支持,可以说是一个经典的版本。2.0主要是采用的二进制的传输,这是跟之前的文本传输最大的不同。当然安全性支持更多的安全协议。3.0就是不采用之前的tcp协议作为底层协议了,QUIC协议没怎么了解过,应该效率比TCP更高了,支持了多路复用就更节省网络资源了。
有同事问怎么使用http3.0版本,其实不管哪个版本,都需要客户端浏览器的支持,这里只针对浏览器WEB而言,对于C/S架构的也一样,就是客户端通信包或者自己实现对高版本http协议的支持。然后就是服务器端支持高版本的http协议的服务。从浏览器这块来看,可以通过F12的网络栏看到协议版本,看看你的哪些应用采用了高版本的http协议。