透视 HTTP 协议
罗剑锋(Chrono)
前奇虎 360 技术专家,Nginx/OpenResty 开源项目贡献者
63943 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 48 讲
开篇词 (1讲)
透视 HTTP 协议
15
15
1.0x
00:00/00:00
登录|注册

39 | HTTP性能优化面面观(上)

工具
传输链路优化
客户端性能优化
服务器性能优化
HTTP性能优化

该思维导图由 AI 生成,仅供参考

“透视 HTTP 协议”这个专栏已经陪伴了你近三个月的时间,在最后的这两讲里,我将把散落在前面各个章节的零散知识点整合起来,做一个总结,和你一起聊聊 HTTP 的性能优化。
由于 HTTPS(SSL/TLS)的优化已经在第 28 讲里介绍的比较详细了,所以这次就暂时略过不谈,你可以课后再找机会复习。
既然要做性能优化,那么,我们就需要知道:什么是性能?它都有哪些指标,又应该如何度量,进而采取哪些手段去优化?
“性能”其实是一个复杂的概念。不同的人、不同的应用场景都会对它有不同的定义。对于 HTTP 来说,它又是一个非常复杂的系统,里面有非常多的角色,所以很难用一两个简单的词就能把性能描述清楚。
还是从 HTTP 最基本的“请求 - 应答”模型来着手吧。在这个模型里有两个角色:客户端和服务器,还有中间的传输链路,考查性能就可以看这三个部分。

HTTP 服务器

我们先来看看服务器,它一般运行在 Linux 操作系统上,用 Apache、Nginx 等 Web 服务器软件对外提供服务,所以,性能的含义就是它的服务能力,也就是尽可能多、尽可能快地处理用户的请求。
衡量服务器性能的主要指标有三个:吞吐量(requests per second)、并发数(concurrency)和响应时间(time per request)。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

HTTP性能优化是一个复杂而重要的话题。本文从HTTP的基本请求-应答模型出发,分别从服务器和客户端两个角度介绍了性能优化的关键指标和方法。对于服务器来说,性能主要包括吞吐量、并发数和响应时间,而对于客户端则主要关注延迟。在服务器性能优化方面,需要合理利用系统资源,提高吞吐量和并发数,降低响应时间;而客户端性能优化的关键则在于降低延迟。文章还介绍了一些常用的性能测试工具和系统资源监控工具,以及如何通过瀑布图等方式观察客户端延迟指标。总的来说,本文通过深入浅出的方式,为读者提供了对HTTP性能优化的全面了解,为他们在实际应用中进行性能优化提供了指导和参考。 在HTTP性能优化中,服务器性能指标包括吞吐量、并发数和响应时间,需要合理利用系统资源,提高吞吐量和并发数,降低响应时间。客户端性能优化主要关注延迟,需要注意地理距离、带宽、DNS查询、TCP握手等因素。传输链路可以分为“第一公里”、“中间一公里”和“最后一公里”,其中“第一公里”和“中间一公里”是可以优化的部分。此外,文章还介绍了一些性能测试工具和系统资源监控工具,以及如何观察客户端延迟指标。通过本文的阅读,读者可以全面了解HTTP性能优化的关键指标和方法,为实际应用中的性能优化提供了指导和参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《透视 HTTP 协议》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(20)

  • 最新
  • 精选
  • 许童童
    你有 HTTP 性能优化的经验吗?常用的有哪些方法? 本人生产环境中会用到的:tcp fast open,DNS,HTTP缓存,DNS-prefetch 你是怎么理解客户端的“延迟”的?应该怎样降低延迟? 就是客户端与服务器一次请求响应的往反时间,降低延迟的话用DNS缓存,TCP连接复用,使用CDN,应该可以降低延迟。

    作者回复: good

    2019-08-26
    2
    23
  • Jaykey
    把课程中学习到的技术用到了生产上,给Nginx添加了缓存控制的头,保证了每一次上线之后资源能更新到用户的设备上,作为前端驱动运维的方式

    作者回复: 学以致用,nice。

    2020-08-03
    8
  • 徐海浪
    1. 你有 HTTP 性能优化的经验吗?常用的有哪些方法? 优化业务逻辑、启用缓存减少交互次数、开启压缩、按需传输(图片的裁剪)减少传输体积; 后端服务器的弹性负载,确保后端服务运行正常。 另:客户端性能过剩,把一部分服务器的计算交给客户端来完成? 2. 你是怎么理解客户端的“延迟”的?应该怎样降低延迟? 客户端与服务端的交互的环节过多、环节耗时过长就会出现延迟。 服务端使用高版本的HTTP协议,在耗时长的环节,用钱和空间换时间。

    作者回复: 欢迎分享经验。

    2019-08-29
    4
  • 安排
    老师,再请教一个知识,ATM,帧中继这种是属于局域网技术吗?那中间一公里用到了哪些网络技术呢?底层还是以太网这种协议吗?中间一公里是不是有特殊的协议?

    作者回复: 1.ATM,帧中继是比较底层的技术了,不是太了解,抱歉。 2.“中间一公里”是一种抽象化的说法,其实就是指整个互联网,也就是我们画网络图时的那朵“云”,是由许多小网络组成的,每个小网络内部可能会用不同的协议,但对外都是用ip协议连接起来的。

    2019-08-26
    4
    4
  • Wakeup
    老师 我对比了下瀑布图 感觉http1的content download的时间比http2的要短,请问下为什么 然后在一个连接上,并发请求很多资源,服务器的资源就不会耗尽了吗? 为什么多个h2请求中间如果有h1,并发会被h1阻断

    作者回复: 1.单从少数几次下载是看不出http/2的优势的,http/2的优势在多路复用、多并发,充分利用带宽。 2.因为http/2只用一个tcp连接,并发的请求只是虚拟的“流”,所以服务器端的资源消耗就少,而http/1会对一个网站创建很多连接。 3.http/2和http/1用的是彼此独立的连接,不会互相影响,不知道你说的是什么现象,我觉得可能是很多链接中混杂了http/2和http/1。

    2019-11-08
    3
  • 安排
    光进铜退这里的铜是说的最后一公里吗?即使是铜的时代那中间一公里也是用的光纤吧?这叫主干网?

    作者回复: 是的,主干网都是用光缆,容量大。

    2019-08-26
    2
    3
  • 旅途
    目前解决的现场问题 瓶颈在数据库 还没到http传输层面 并且这个是内网服务 访问的范围在市内 这种的话还属于老师您说的三公里模型吗

    作者回复: 内网服务就相当于第零公里的问题了,需要公司内部去优化,通常不属于http协议的范围了。

    2020-08-19
    2
  • Joker
    在浏览器,资源文件获取还是挺耗时间的,尽量把静态资源资源文件合并,css文件,js文件这些能合并就合并,图片能拼就拼,能用CDN,绝不用服务器。

    作者回复: 一定要注意资源合并是http/1的优化方式,在http/2里绝对不要用。

    2020-04-15
    2
  • ifelse
    程序上大图片和大视频进行质量压缩,返给接口压缩后的文件

    作者回复: great

    2023-02-08归属地:浙江
    1
  • 渴望做梦
    老师,为什么因为队头阻塞所以浏览器允许只能并发6个请求呢?

    作者回复: 队头阻塞与最多6个并发连接没有关系。 最多6个并发连接是rfc标准的规定,为了防止客户端并发太多连接,耗尽服务器的资源。 队头阻塞是因为http的请求应答模式,多个请求必须顺序排队,所以队头会阻塞整个队列。

    2019-09-02
    3
    1
收起评论
显示
设置
留言
20
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部