HTTP1.1 和 HTTP1.0 的区别有哪些?
-
1.长链接
-
早期 HTTP1.0 的每一次请求都伴随着一次三次握手的过程,并且是串行的请求,增加了不必要的性能开销
-
HTTP1.1 新增了长链接的通讯方式,减少了性能损耗
-
-
2.管道
-
HTTP1.0 只有串行发送,没有管道
-
HTTP1.1 增加了管道的概念,使得在同一个 TCP 链接当中可以同时发出多个请求
-
-
3.断点续传
-
HTTP1.0 不支持断点续传
-
HTTP1.1 新增了 range 字段,用来指定数据字节位置,开启了断点续传的时代
-
-
4.Host头处理
扫描二维码关注公众号,回复: 14436951 查看本文章-
HTTP1.0 任务主机只有一个节点,所以并没有传 HOST
-
HTTP1.1 时代,虚拟机技术越来越发达,一台机器上也有可能有很多节点,故增加了 HOST 信息
-
-
5.缓存处理
-
在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准
-
HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
-
-
6.错误状态响应码
-
在HTTP1.1中新增了24个错误状态响应码,如410(Gone)表示服务器上的某个资源被永久性的删除等。
-
HTTP2 和 HTTP1.1 的区别是什么?
-
1.头部压缩
-
在 HTTP2 当中,如果你发出了多个请求,并且它们的头部(header)是相同的,那么 HTTP2 协议会帮你消除同样的部分。(其实就是在客户端和服务端维护一张索引表来实现)
-
-
2.二进制格式
-
HTTP1.1 采用明文的形式
-
HTTP/2 全⾯采⽤了⼆进制格式,头信息和数据体都是⼆进制
-
-
3.数据流
-
HTTP/2 的数据包不是按顺序发送的,同⼀个连接⾥⾯连续的数据包,可能属于不同的回应。(对数据包做了标记,标志其属于哪一个请求,其中规定客户端发出的数据流编号为奇数,服务器发出的数据流编号为偶数。客户端还可以指定数据流的优先级,优先级⾼的请求,服务器就先响应该请求)
-
HTTP3 和 HTTP2 的区别是什么?
-
1.协议不同
-
HTTP2 是基于 TCP 协议实现的
-
HTTP3 是基于 UDP 协议实现的
-
-
2.QUIC
-
HTTP3 新增了 QUIC 协议来实现可靠性的传输
-
-
3.握手次数
-
HTTP2 是基于 HTTPS 实现的,建立连接需要先进行 TCP 3次握手,然后再进行 TLS 3次握手,总共6次握手
-
HTTP3 只需要 QUIC 的3次握手
-
-
4.IO多路复用
-
如:在⼀个连接中,服务器收到了客户端 A 和 B 的两个请求,但是发现在处理 A 的过程中⾮常耗时,索性就先回应 A 已经处理好的部分,再接着回应 B 请求,最后再回应 A 请求剩下的部分。
-
HTTP/2 可以在⼀个连接中并发多个请求或回应。
-
-
5.服务器推送
-
服务器可以主动向客户端发送请
-