欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > C++面试:HTTP1.0/1.1,HTTP2.0,HTPP3.0的区别

C++面试:HTTP1.0/1.1,HTTP2.0,HTPP3.0的区别

2025/2/25 3:16:33 来源:https://blog.csdn.net/m0_59337025/article/details/129813481  浏览:    关键词:C++面试:HTTP1.0/1.1,HTTP2.0,HTPP3.0的区别

1.你对HTTP1.0/1.1,HTTP2.0,HTPP3.0有什么了解?

答:HTTP1.0:

①属于无连接式,每次发送HTTP请求都需要建立TCP连接。

②会造成发送时的对头阻塞,当上一个请求没有应答,当前的请求就会被阻塞。

③在HTTP1.0中主要使用header里的协商缓存 last-modified\if-modified-since,强缓存 Expires来做为缓存判断的标准。Expires明确了浏览器缓存当前URL或网址的时间。

HTTP1.1:

①常连接,不用每次发送HTTP请求都建立TCP连接。

②支持管道网络传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。

HTTP2.0:

①头部压缩,利用HPAK算法,维护一张表,将字段放入表中,返回索引,不用重复发送相同的字段。

②采用了二进制格式,先前HTTP1.0使用字符等数据占用空间大,还需要将数据转换为二进制格式,现在一步到位。

③HTTP2.0实现了真正的并行传输,大大节约时间成本。

④服务器会主动推送消息不再是被动。例如,客户端接收到了服务端发送的HTML文件,但是后续还需要css文件进行渲染,服务端就会主动发送css文件,不用客户端再次发送请求。

⑤还是会有由TCP导致的队头阻塞,同一个Stream的数据,在HTTP2.0中可以乱序发送,再由Streamid信息组装,但是如果其中一个片段丢失,就会导致后续的HTTP请求阻塞住,因为滑动窗口不会移动直到再次将丢失数据快重传。

 HTTP3.0:

因为上述TCP导致的问题,HTTP3.0转向底层使用UDP,为了保证可靠传输,需要QUIC来实现可靠传输。

QUIC: 

        QUIC(Quick UDP Internet Connection)是谷歌推出的一套基于UDP的传输协议,它实现了TCP + HTTPS + HTTP/2的功能,目的是保证可靠性的同时降低网络延迟。因为UDP是一个简单传输协议,基于UDP可以摆脱TCP传输确认、重传慢启动等因素,建立安全连接只需要一的个往返时间,它还实现了HTTP/2多路复用、头部压缩等功能。

众所周知UDP比TCP传输速度快,TCP是可靠协议,但是代价是双方确认数据而衍生的一系列消耗。其次TCP是系统内核实现的,如果升级TCP协议,就得让用户升级系统,这个的门槛比较高,而QUIC在UDP基础上由客户端自由发挥,只要有服务器能对接就可以。
在这里插入图片描述

①基于 UDP:QUIC 使用 UDP(User Datagram Protocol)作为传输协议,而不是传统的 TCP(Transmission Control Protocol)。UDP 通常被认为是一种不可靠的协议,但 QUIC 通过在应用层实现可靠性机制来弥补这一点。

②减少连接建立延迟:QUIC 通过减少握手次数来加快连接建立过程。例如,QUIC 可以实现 0-RTT(零往返时间)连接建立,这意味着客户端可以在发送第一个数据包时就开始发送应用数据,而不需要等待服务器的响应。

③多路复用:QUIC 支持在一个连接中同时传输多个数据流,这可以避免 TCP 中的“队头阻塞”问题。每个数据流独立,即使某个数据流出现延迟或丢包,也不会影响其他数据流。

④内置加密:QUIC 在协议设计中集成了加密机制,提供了类似于 TLS(Transport Layer Security)的安全性。这不仅提高了安全性,还减少了加密握手的延迟。

⑤连接迁移:QUIC 支持连接迁移,即当客户端的网络条件发生变化(例如从 Wi-Fi 切换到蜂窝网络)时,连接可以无缝切换到新的网络接口,而不会中断数据传输。

⑥拥塞控制:QUIC 实现了先进的拥塞控制算法,如 Cubic 和 BBR(Bottleneck Bandwidth and RTT),以优化网络性能和减少丢包。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词