HTTP/1.1 队头堵塞问题

文章目录

一、队头堵塞

1、非管线化

如图,http 请求必须等到上一个请求响应后才能发送,后面的以此类推,由此可以看出,在一个 tcp 通道中,如果某个 http 请求的响应因为某种原因没能及时返回,那后面的请求都会被阻塞

2、管线化

管线化限制服务器端需按照请求的发送顺序返回响应,如果其中某个响应因为某种原因延迟了几秒,那后面的响应都会被阻塞

HTTP/1.1 管线化解决了请求的队头阻塞,但没有解决响应的队头阻塞

二、如何解决?

HTTP/1.1 建议客户端使用并发长连接,RFC2616 明确限制每个客户端对同一个域名可以建立两个长连接,但是一般浏览器会增加到 6 ~ 8 个,其中,谷歌浏览器是 6 个,也就是页面中如果对同一个域名有多个 http 请求,谷歌浏览器会对这个域名建立 6 个 tcp 长连接,在每个长连接里面再去处理 http 请求,但是这种方案对服务器的挑战非常大,甚至有些 web 优化方案中还会突破 6 ~ 8 的限制,那就是域名切片,因为长连接针对的是同一个域名,如果开发人员将资源分布在不同的域名上,那么长连接的数量是可以被突破的,但这样做无疑会增大服务器的连接数,当服务器面对海量请求的话,可能会出现问题,那怎么办呢?HTTP/2.0

相关推荐
右耳朵猫AI9 小时前
Go周刊2026W36 | Go 1.27.1 发布、TinyGo 0.42、HTTP/2 原生迁入 net/http、quic-go 0.62
redis·http·golang
承渊政道18 小时前
星空组网真实体验:Mac远程访问Ubuntu,SSH与HTTP全流程验证
ubuntu·http·macos·ssh·服务器管理·星空组网
牛油果子哥q2 天前
C++对接LLM完整工程:异步HTTP请求、JSON解析、超时容错、重连兜底
c++·http·json
SKH.2 天前
网络(4)HTTP协议与TCP并发服务器
网络·tcp/ip·http
你不是我我2 天前
【AI 测评】群晖 NAS 部署 Vaultwarden:从 HTTPS 到浏览器自动填充的完整密码管理流程
网络协议·http·https
IT大白鼠2 天前
Ingress 与 Ingress-Controller:K8s 七层 HTTP 反向代理技术详解与实践
http·容器·kubernetes
myy-learn2 天前
30-HTTP协议
网络·网络协议·http
G佳伟3 天前
宝塔面板打不开且 Bt-Panel 未运行:从 HTTP 502 到 gevent 缺失的完整排查与修复
网络协议·http·php
keyipatience3 天前
IP网络层
服务器·网络·网络协议·ubuntu·http
白狐_7983 天前
408 计算机网络|HTTP 的 RTT 怎么数:用多道题讲清楚
网络协议·计算机网络·http