我曾经提到过 HTTP 的性能问题,用了六个字来概括:“不算差,不够好”。同时,我也谈到了“队头阻塞”,但由于时间的限制没有展开来细讲,这次就来好好地看看 HTTP 在连接这方面的表现。

HTTP 的连接管理也算得上是个“老生常谈”的话题了,你一定曾经听说过“短连接”“长连接”之类的名词,今天让我们一起来把它们弄清楚。

短连接

HTTP 协议最初(0.9/1.0)是个非常简单的协议,通信过程也采用了简单的“请求 - 应答”方式。

它底层的数据传输基于 TCP/IP,每次发送请求前需要先与服务器建立连接,收到响应报文后会立即关闭连接。

因为客户端与服务器的整个连接过程很短暂,不会与服务器保持长时间的连接状态,所以就被称为“短连接”(short-lived connections)。早期的 HTTP 协议也被称为是“无连接”的协议。

短连接的缺点相当严重,因为在 TCP 协议里,建立连接和关闭连接都是非常“昂贵”的操作。TCP 建立连接要有“三次握手”,发送 3 个数据包,需要 1 个 RTT;关闭连接是“四次挥手”,4 个数据包需要 2 个 RTT。

而 HTTP 的一次简单“请求 - 响应”通常只需要 4 个包,如果不算服务器内部的处理时间,最多是 2 个 RTT。这么算下来,浪费的时间就是“3÷5=60%”,有三分之二的时间被浪费掉了,传输效率低得惊人。

17 | 排队也要讲效率:HTTP的连接管理相关推荐

  1. 【每日一题】7月17日题目精讲—BOWL 碗的叠放

    [每日一题]7月17日题目精讲-BOWL 碗的叠放 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld ...

  2. 第127讲:Hadoop集群管理之安全模式解析及动手实战学习笔记

    第127讲:Hadoop集群管理之安全模式解析及动手实战学习笔记 hadoop在启动时namenode会把fsimage加载进内存,同时和edits内容合并,以此建立整个文件系统的元数据的镜像(内存级 ...

  3. C#,如何提高DataGridView控件的显示效率?一次要管理100万条记录,如何才能不卡?不仅仅是虚拟模式的问题。

    C#,如何提高DataGridView控件的显示效率?一次要管理100万条记录,如何才能不卡?不仅仅是虚拟模式的问题. (1)采用virtualmode,不要使用datagridview1.datas ...

  4. 连接中心服务器异常,FF14排队出现2002错误详细解决办法 连接大厅服务器发生错误怎么办?...

    最终幻想14最近国服的5.0新版本上线了,不过很多玩家在进入游戏之后出现了提示"连接大厅服务器发生错误"代号是2002,导致进不去游戏,一些玩家还不知道该怎么办,下面就来为大家介绍 ...

  5. 17个提升iOS开发效率的必用工具

    本文由CocoaChina译者@红茶魔术师-大红袍 翻译自netguru.co 原文:17 Must Have Tools to Speed up Development in iOS 作者介绍:Pa ...

  6. 17个提升iOS开发效率的神器

    时间就是金钱.编码效率的提升意味着更多的收入.可是当我们的开发技巧已经到达一定高度时,如何让开发效率更上一层楼呢?答案就是使用开发工具!在这篇文章中,我会向你介绍一些帮助我提升编码速度和工作效率的工具 ...

  7. 【每日一题】8月17日题目精讲-[SCOI2009]生日礼物

    来源:牛客网: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 小西有一条很长的彩带,彩带 ...

  8. 牛客网【每日一题】4月17日题目精讲 华华给月月准备礼物

    文章目录 题目描述 题解: 代码: 推荐例题: 试题链接 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld ...

  9. 3500字长文讲透《CRM商机管理是什么》

    1. 商机定义 商机(business opportunity),顾名思义,是商业机会.从经济意义上讲,能够产生商业利润的机会.对于企业来说,商机是获取的潜在项目机会,是进一步发育的线索,是逐渐明朗的 ...

最新文章

  1. 收藏 | 2018年AI三大顶会中国学术成果全链接(附视频、PPT、论文)
  2. 【算法题】天平砝码称重
  3. 即将到截止日期,Frontiers期刊向您邀稿啦!脑机接口领域
  4. asp.net core 自定义 Content-Type
  5. HTML5 音频视频
  6. 博弈论 斯坦福game theory stanford week 3.2_
  7. 最新sfc模拟器安卓汉化版_卡车模拟器山货运卡车3D游戏安卓最新版 v1.0 卡车模拟器山货运卡车3D游戏下载...
  8. 关联本地项目和svn_SVN服务器项目如何与本地项目同步,关联?
  9. 【技术维新 践行精彩】浅谈未来网站的构建
  10. vue中属性key的作用(了解diff),为什么不建议index作为key
  11. swiper 插件里面嵌套可滚动内容
  12. STM32L476RG利用串口下载程序
  13. Windows运行程序时桌面窗口卡死
  14. 数极客发布第10大用户行为数据分析模型-间隔分析
  15. qq登录无法连接服务器未响应,win7登录qq提示腾讯qq未响应的解决方法
  16. cxfreeze 打包exe
  17. AI黑科技 | 宏碁研发智能穿戴设备:智能佛珠
  18. 射影几何 -- 空间射影几何 1
  19. matlab 播放声音,Matlab:实时播放音频并显示波形
  20. 使用360手机助手连接真机。图文教程

热门文章

  1. Activity转场动画
  2. html显示xml xsl,XML入门教程:使用XSL显示XML
  3. 【重要程序】判断闰年
  4. word文件不小心被删怎么恢复
  5. android手机短信验证码读取问题
  6. 英文文献阅读1-基于灰色关联熵分析的电子商务背景下农村终端配送模式评价
  7. requests爬取微博
  8. 科技为翼,让普惠金融拂过烟火人间
  9. 三点弯曲弹性模量怎么计算公式_三点弯曲法测试硬质合金弹性模量
  10. 如何快速高效地进行seo域名批量查询