当前位置: 首页 > news >正文

HTTP/1.1 队头堵塞问题

文章目录

  • 一、队头堵塞
    • 1、非管线化
    • 2、管线化
  • 二、如何解决?

一、队头堵塞

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


http://www.mrgr.cn/news/98861.html

相关文章:

  • 消息中间件——RocketMQ(一)
  • nodejs使用pkg打包文件
  • 面试题之数据库-mysql高阶及业务场景设计
  • 论文阅读VACE: All-in-One Video Creation and Editing
  • 【Python】用Python写一个俄罗斯方块玩玩
  • ubuntu24.04离线安装deb格式的mysql-community-8.4.4
  • Git核心命令
  • 深度学习2.5 自动微分
  • 智能Todo协作系统开发日志(二):架构优化与安全增强
  • Livox Avia激光雷达与工业相机标定项目从零学习
  • 探索大语言模型(LLM):目标、原理、挑战与解决方案
  • Git 查看提交历史
  • Git仓库创建
  • Jmeter创建使用变量——能够递增递减的计数器
  • Git 工作区、暂存区和版本库
  • 第十节:性能优化-如何排查组件不必要的重复渲染?
  • Git标签的认识
  • 探索大语言模型(LLM):马尔可夫链——从诗歌分析到人工智能的数学工具
  • 探索大语言模型(LLM):定义、发展、构建与应用
  • postman莫名奇妙报错,可能是注释引起的。postman 过滤请求体中的注释。