面试题答案
一键面试性能优势
- 并行请求与响应
- HTTP/1.x:在HTTP/1.x中,每个TCP连接在同一时间只能处理一个请求 - 响应,即队头阻塞(Head - of - line blocking)问题。若一个请求处理缓慢,后续请求即使可以独立处理,也必须等待前面的请求完成,导致整体性能下降。
- HTTP/2:多路复用允许在同一个TCP连接上同时发送多个请求和接收多个响应,且请求和响应之间互不阻塞。客户端可以将多个请求同时发送到服务器,服务器也能按任意顺序将响应返回给客户端,极大提高了网络利用率和响应速度。
- 传输延迟降低
- HTTP/1.x:由于队头阻塞问题,为了提高并发,往往需要建立多个TCP连接,但过多的TCP连接会带来额外的开销(如TCP握手、拥塞控制等),反而增加了整体延迟。
- HTTP/2:通过多路复用,只需一个TCP连接就能满足并发需求,减少了TCP连接建立和管理的开销,降低了传输延迟。同时,因为数据可以交错传输,重要的数据(如关键CSS、JavaScript文件)可以优先发送和处理,进一步优化了页面加载时间。
资源利用优势
- TCP连接资源节省
- HTTP/1.x:为了实现并发,通常需要创建多个TCP连接来同时处理多个请求,这会占用更多的系统资源(如文件描述符、内存等),尤其是在高并发场景下,系统资源消耗巨大。
- HTTP/2:多路复用技术基于单个TCP连接进行数据传输,大大减少了TCP连接的数量,从而节省了系统资源,使得服务器能够处理更多的并发请求,提高了服务器的整体性能和资源利用率。
- 带宽利用更高效
- HTTP/1.x:由于每个请求 - 响应是串行处理,在某些情况下,可能会出现带宽空闲的情况。例如,一个大文件下载请求在传输时,其他请求只能等待,导致带宽不能充分利用。
- HTTP/2:多路复用使数据能够交错传输,不同请求的数据包可以在TCP流中混合发送,避免了带宽空闲,提高了带宽利用率,使得在有限的带宽条件下,能够传输更多的数据。