http1.0, http1.1, http2区别
http1.0
- 仅仅提供了最基本的认证,这时候用户名和密码还未经加密
- 短链接:即每次发送数据都会经过 TCP 的三次握手和四次挥手,效率比较低
- 不支持断点续传:每次都会传送全部的页面和数据。
http1.1
- 摘要算法进行身份验证
- 默认长连接:长连接就是只需一次建立就可以传输多次数据,传输完成后,只需要一次切断连接即可。长连接的连接时长可以通过请求头中的 keep-alive 来设置
- 支持断点续传,通过使用请求头中的 Range 来实现
http2.0
- 头部压缩:由于 HTTP 1.1 经常会出现 User-Agent、Cookie、Accept、Server、Range 等字段可能会占用几百甚至几千字节,而 Body 却经常只有几十字节,所以导致头部偏重。HTTP 2.0 使用 HPACK 算法进行压缩。
- 二进制格式:HTTP 2.0 使用了更加靠近 TCP/IP 的二进制格式,而抛弃了 ASCII 码,提升了解析效率
- 安全:由于安全已经成为重中之重,所以 HTTP2.0 一般都跑在 HTTPS 上
- 多路复用:HTTP/2 的多路复用(Multiplexing) 则允许同时通过单一的 HTTP/2 连接发起多重的请求-响应消息。因此 HTTP/2 可以很容易的去实现多流并行而不用依赖建立多个 TCP 连接