http1.x http2.0
http建立在TCP协议之上,而https建立在SSL或TSL之上
SSL或TSL是在HTTP和TCP协议之间添加的一个安全协议层
http1.x
线程阻塞,同一时刻,同一域名的请求有一定数据,超过的会被阻塞
http1.0
客户端与服务器只保持短暂连接,每次都建立一个tcp请求(成本高,要三次握手),用完立即断开。服务器不跟踪每个客户,也不记录过去的请求
http1.1
- 加入Connection:keep-alive 默认打开
- 管道机制,即同一个tcp连接,可以发送多个请求
- 服务器每产生一个块数据,就发送一块数据,采用“流模式”替代 “缓存”模式
- 新增PUT, DELETE等请求方式
虽然复用tcp连接,但数据通信是按次序进行的。服务器处理完一个请求,才继续下一个。如果前面的处理特别慢,就会有许多请求排队等待,导致“队头堵塞”
http2.0
- 采用二进制流格式(头信息帧+数据帧),而非文本格式
- 完全多路复用。 在一个tcp连接里,客户端和服务器可以同时发送多个请求和回应,不用按顺序,避免了“队头堵塞”
- http没有状态,导致每次请求都带了所以信息。有许多头字段比如cookie是一样的但都必须附带,浪费带宽也影响速度。http2.0做了优化,相同的头部只发送一次,并进行头信息gzip压缩。另外客户端服务器都维护一张头信息表,所有字段都会存入这个表并产生一个索引号,之后相同的只需发送索引号
- 支持服务器推送
https数据加密流程