HTTP1.0 HTTP1.1 HTTP2.0的区别

一.HTTP1.0和HTTP1.1的一些区别

长链接

HTTP 1.0须要使用keep-alive参数来告知服务器端要创建一个长链接,而HTTP1.1默认支持长链接。HTTP是基于TCP/IP协议的,建立一个TCP链接是须要通过三次握手的,有必定的开销,若是每次通信都要从新创建链接的话,对性能有影响。所以最好能维持一个长链接,能够用个长链接来发多个请求。web

Host头域

在HTTP1.0中认为每台服务器都绑定一个惟一的IP地址,所以,请求消息中的URL并无传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上能够存在多个虚拟主机(Multi-homed Web Servers),而且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中若是没有Host头域会报告一个错误(400 Bad Request)。算法

节约带宽

HTTP 1.1支持只发送header信息(不带任何body信息),若是服务器认为客户端有权限请求服务器,则返回100,不然返回401。客户端若是接受到100,才开始把请求body发送到服务器。这样当服务器返回401的时候,客户端就能够不用发送请求body了,节约了带宽。另外HTTP还支持传送内容的一部分。这样当客户端已经有一部分的资源后,只须要跟服务器请求另外的部分资源便可。这是支持文件断点续传的基础。浏览器

错误通知的管理

在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。服务器

 二.HTTPS与HTTP的一些区别

  • HTTPS协议须要到CA申请证书,通常免费证书不多,须要交费。
  • HTTP协议运行在TCP之上,全部传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,全部传输的内容都通过加密的。网络

  • HTTP和HTTPS使用的是彻底不一样的链接方式,用的端口也不同,前者是80,后者是443。并发

  • HTTPS能够有效的防止运营商劫持,解决了防劫持的一个大问题。性能

 

三.HTTP1.1 HTTP 2.0主要区别

多路复用:

在HTTP/1.1协议中,浏览器客户端在同一时间针对同一域名的请求有必定数据限制。超过限制数目的请求会被阻塞。
HTTP2.0使用了多路复用的技术,作到同一个链接并发处理多个请求,并且并发请求的数量比HTTP1.1大了好几个数量级。
固然HTTP1.1也能够多创建几个TCP链接,来支持处理更多并发的请求,可是建立TCP链接自己也是有开销的。
TCP链接有一个预热和保护的过程,先检查数据是否传送成功,一旦成功过,则慢慢加大传输速度。所以对应瞬时并发的链接,服务器的响应就会变慢。因此最好能使用一个创建好的链接,而且这个链接能够支持瞬时并发的请求。加密

服务器推送:

当咱们对支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端须要的资源一块儿推送到客户端,省得客户端再次建立链接发送请求到服务器端获取。这种方式很是合适加载静态资源。 spa

首部压缩:

HTTP1.1不支持header数据的压缩,HTTP2.0使用HPACK算法对header的数据进行压缩,这样数据体积小了,在网络上传输就会更快。server