Http 2.0和http3.0对比之前的版本, 分别做了哪些改进?
HTTP/2.0的改进:
-
多路复用:HTTP/2.0可以在一个
TCP连接上同时发送多个请求和响应,从而避免了HTTP/1.x中的队头阻塞问题,提高了网络吞吐量和页面加载速度。 -
头部压缩:HTTP/2.0使用
HPACK算法对HTTP头部进行压缩,从而减少了网络传输的开销,提高了网络性能。 -
服务器推送:HTTP/2.0支持
服务器推送,即在客户端请求一个资源时,服务器可以主动推送其他相关资源给客户端,从而减少了网络延迟和页面加载时间。
HTTP/3.0的改进:
-
基于QUIC协议:HTTP/3.0使用
基于UDP的QUIC协议来传输数据,相比于TCP协议,QUIC协议可以提供更快的连接建立和传输速度,减少了网络延迟和丢包率。 -
集成了
TLS加密:HTTP/3.0集成了TLS加密,从而保护了网络传输的安全性。 -
0-RTT连接:HTTP/3.0支持
0-RTT连接,即客户端可以在没有建立连接的情况下向服务器发送请求,从而进一步减少了网络延迟和页面加载时间。
HTTP 3.0基于udp的话, 如何保证可靠的传输?
HTTP/3.0基于UDP协议进行传输,相对于TCP协议,UDP协议本身并不能提供可靠的传输,因为UDP协议不具备TCP协议的重传、拥塞控制等机制。但是HTTP/3.0在UDP协议的基础上,通过QUIC协议来实现可靠的传输,具体包括以下几个方面:
-
前向纠错(Forward Error Correction,FEC):HTTP/3.0使用FEC技术来纠正数据包的丢失,即在发送数据包的同时,
发送一些冗余数据,接收方可以利用这些冗余数据来还原丢失的数据包,从而提高数据的可靠性。 -
重传机制:HTTP/3.0在QUIC协议中实现了自己的重传机制,即当发生数据包丢失或者损坏时,会进行
重传,以确保数据的可靠传输。 -
拥塞控制:HTTP/3.0基于QUIC协议实现了自己的拥塞控制机制,可以根据网络情况自适应地
调整数据传输的速率,以避免网络拥塞和数据包丢失。
TCP和UDP最大的区别是什么?
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种网络传输协议,它们最大的区别在于以下几个方面:
-
连接性:TCP是面向连接的协议,UDP是面向无连接的协议。TCP在建立连接之后才能进行数据传输,而UDP可以直接发送数据包,不需要建立连接。
-
可靠性:TCP提供可靠的传输服务,即数据传输过程中会进行重传、拥塞控制等机制,以确保数据的可靠性。而UDP不提供可靠的传输服务,数据包发送出去后无法保证能够被接收方接收到,也没有重传、拥塞控制等机制。
-
数据量:TCP适合传输大量数据,UDP适合传输小量数据。由于TCP有建立连接、拥塞控制等机制,传输过程中会产生较大的开销,因此适合传输大量数据。而UDP不需要建立连接,传输过程中开销较小,因此适合传输小量数据。
-
速度:UDP传输速度比TCP快。由于TCP需要建立连接、拥塞控制等机制,传输过程中会产生较大的延迟,因此传输速度相对较慢。而UDP没有这些机制,传输速度相对较快。