透视HTTP协议
罗剑锋(Chrono)
奇虎360技术专家,Nginx/OpenResty开源项目贡献者
立即订阅
6077 人已学习
课程目录
已完结 44 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词|To Be a HTTP Hero
免费
破冰篇 (7讲)
01 | 时势与英雄:HTTP的前世今生
02 | HTTP是什么?HTTP又不是什么?
03 | HTTP世界全览(上):与HTTP相关的各种概念
04 | HTTP世界全览(下):与HTTP相关的各种协议
05 | 常说的“四层”和“七层”到底是什么?“五层”“六层”哪去了?
06 | 域名里有哪些门道?
07 | 自己动手,搭建HTTP实验环境
基础篇 (7讲)
08 | 键入网址再按下回车,后面究竟发生了什么?
09 | HTTP报文是什么样子的?
10 | 应该如何理解请求方法?
11 | 你能写出正确的网址吗?
12 | 响应状态码该怎么用?
13 | HTTP有哪些特点?
14 | HTTP有哪些优点?又有哪些缺点?
进阶篇 (8讲)
15 | 海纳百川:HTTP的实体数据
16 | 把大象装进冰箱:HTTP传输大文件的方法
17 | 排队也要讲效率:HTTP的连接管理
18 | 四通八达:HTTP的重定向和跳转
19 | 让我知道你是谁:HTTP的Cookie机制
20 | 生鲜速递:HTTP的缓存控制
21 | 良心中间商:HTTP的代理服务
22 | 冷链周转:HTTP的缓存代理
安全篇 (7讲)
23 | HTTPS是什么?SSL/TLS又是什么?
24 | 固若金汤的根本(上):对称加密与非对称加密
25 | 固若金汤的根本(下):数字签名与证书
26 | 信任始于握手:TLS1.2连接过程解析
27 | 更好更快的握手:TLS1.3特性解析
28 | 连接太慢该怎么办:HTTPS的优化
29 | 我应该迁移到HTTPS吗?
飞翔篇 (4讲)
30 | 时代之风(上):HTTP/2特性概览
31 | 时代之风(下):HTTP/2内核剖析
32 | 未来之路:HTTP/3展望
33 | 我应该迁移到HTTP/2吗?
探索篇 (5讲)
34 | Nginx:高性能的Web服务器
35 | OpenResty:更灵活的Web服务器
36 | WAF:保护我们的网络服务
37 | CDN:加速我们的网络服务
38 | WebSocket:沙盒里的TCP
总结篇 (2讲)
39 | HTTP性能优化面面观(上)
40 | HTTP性能优化面面观(下)
答疑篇 (2讲)
41 | Linux/Mac实验环境搭建与URI查询参数
42 | DHE/ECDHE算法的原理
结束语 (1讲)
结束语 | 做兴趣使然的Hero
透视HTTP协议
登录|注册

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

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

HTTP 服务器

我们先来看看服务器,它一般运行在 Linux 操作系统上,用 Apache、Nginx 等 Web 服务器软件对外提供服务,所以,性能的含义就是它的服务能力,也就是尽可能多、尽可能快地处理用户的请求。
衡量服务器性能的主要指标有三个:吞吐量(requests per second)、并发数(concurrency)和响应时间(time per request)。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《透视HTTP协议》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(8)

  • 许童童
    你有 HTTP 性能优化的经验吗?常用的有哪些方法?
    本人生产环境中会用到的:tcp fast open,DNS,HTTP缓存,DNS-prefetch

    你是怎么理解客户端的“延迟”的?应该怎样降低延迟?
    就是客户端与服务器一次请求响应的往反时间,降低延迟的话用DNS缓存,TCP连接复用,使用CDN,应该可以降低延迟。

    作者回复: good

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

    作者回复:
    1.ATM,帧中继是比较底层的技术了,不是太了解,抱歉。

    2.“中间一公里”是一种抽象化的说法,其实就是指整个互联网,也就是我们画网络图时的那朵“云”,是由许多小网络组成的,每个小网络内部可能会用不同的协议,但对外都是用ip协议连接起来的。

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

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

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

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

    2019-08-29
    1
  • 闫飞
    中间一公里的说法很容易引起混淆,尤其是对熟悉通信网复杂性的工程师而已更加费解。

    作者回复: 这是CDN领域里常用的一种说法,这里借用了一下,我个人觉得还是很形象的,简化了网络模型。

    2019-08-26
    1
  • 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
  • 业余草
    ab测试,就是破坏rfc的标准。这个标准服务器端是没法限制的,只能靠客户端的自觉性。

    作者回复: 是的,不过因为是测试,所以就不用太在意了。

    2019-09-03
  • 渴望做梦
    老师,为什么因为队头阻塞所以浏览器允许只能并发6个请求呢?

    作者回复: 队头阻塞与最多6个并发连接没有关系。

    最多6个并发连接是rfc标准的规定,为了防止客户端并发太多连接,耗尽服务器的资源。

    队头阻塞是因为http的请求应答模式,多个请求必须顺序排队,所以队头会阻塞整个队列。

    2019-09-02
    1
收起评论
8
返回
顶部