http1因为没有对请求跟响应加上唯一标识(历史包袱),为了保证请求跟响应的一一对应,同一个连接上请求的发送必须在上一个请求完成之后(http层面的hol blocking问题)。所以,只要有并发,必然就会有阻塞,这个阻塞会随着请求并发的程度跟网络环境逐渐放大,这也是http1效率低(慢)的主要原因。像1.0的keep-alive出现之前,每次请求都需要重新建立连接,效率更是可怕的低。
不过http2在frame(应用层)层面加了一个streamId,使得不同请求的数据可以在同一条连接上混合传输,使得并发的效率得到大幅提升
网友评论