39 | HTTP性能优化面面观(上)
39 | HTTP性能优化面面观(上)
讲述:Chrono
时长09:48大小11.21M
HTTP 服务器
HTTP 客户端
HTTP 传输链路
小结
课下作业
赞 11
提建议
精选留言(18)
- 许童童2019-08-26你有 HTTP 性能优化的经验吗?常用的有哪些方法? 本人生产环境中会用到的:tcp fast open,DNS,HTTP缓存,DNS-prefetch 你是怎么理解客户端的“延迟”的?应该怎样降低延迟? 就是客户端与服务器一次请求响应的往反时间,降低延迟的话用DNS缓存,TCP连接复用,使用CDN,应该可以降低延迟。展开
作者回复: good
共 2 条评论20 - Jaykey2020-08-03把课程中学习到的技术用到了生产上,给Nginx添加了缓存控制的头,保证了每一次上线之后资源能更新到用户的设备上,作为前端驱动运维的方式
作者回复: 学以致用,nice。
6 - 安排2019-08-26老师,再请教一个知识,ATM,帧中继这种是属于局域网技术吗?那中间一公里用到了哪些网络技术呢?底层还是以太网这种协议吗?中间一公里是不是有特殊的协议?
作者回复: 1.ATM,帧中继是比较底层的技术了,不是太了解,抱歉。 2.“中间一公里”是一种抽象化的说法,其实就是指整个互联网,也就是我们画网络图时的那朵“云”,是由许多小网络组成的,每个小网络内部可能会用不同的协议,但对外都是用ip协议连接起来的。
共 4 条评论4 - Wakeup2019-11-08老师 我对比了下瀑布图 感觉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。
3 - 徐海浪2019-08-291. 你有 HTTP 性能优化的经验吗?常用的有哪些方法? 优化业务逻辑、启用缓存减少交互次数、开启压缩、按需传输(图片的裁剪)减少传输体积; 后端服务器的弹性负载,确保后端服务运行正常。 另:客户端性能过剩,把一部分服务器的计算交给客户端来完成? 2. 你是怎么理解客户端的“延迟”的?应该怎样降低延迟? 客户端与服务端的交互的环节过多、环节耗时过长就会出现延迟。 服务端使用高版本的HTTP协议,在耗时长的环节,用钱和空间换时间。展开
作者回复: 欢迎分享经验。
3 - 安排2019-08-26光进铜退这里的铜是说的最后一公里吗?即使是铜的时代那中间一公里也是用的光纤吧?这叫主干网?
作者回复: 是的,主干网都是用光缆,容量大。
共 2 条评论3 - 旅途2020-08-19目前解决的现场问题 瓶颈在数据库 还没到http传输层面 并且这个是内网服务 访问的范围在市内 这种的话还属于老师您说的三公里模型吗
作者回复: 内网服务就相当于第零公里的问题了,需要公司内部去优化,通常不属于http协议的范围了。
2 - Joker2020-04-15在浏览器,资源文件获取还是挺耗时间的,尽量把静态资源资源文件合并,css文件,js文件这些能合并就合并,图片能拼就拼,能用CDN,绝不用服务器。
作者回复: 一定要注意资源合并是http/1的优化方式,在http/2里绝对不要用。
1 - 渴望做梦2019-09-02老师,为什么因为队头阻塞所以浏览器允许只能并发6个请求呢?
作者回复: 队头阻塞与最多6个并发连接没有关系。 最多6个并发连接是rfc标准的规定,为了防止客户端并发太多连接,耗尽服务器的资源。 队头阻塞是因为http的请求应答模式,多个请求必须顺序排队,所以队头会阻塞整个队列。
共 3 条评论1 - 闫飞2019-08-26中间一公里的说法很容易引起混淆,尤其是对熟悉通信网复杂性的工程师而已更加费解。
作者回复: 这是CDN领域里常用的一种说法,这里借用了一下,我个人觉得还是很形象的,简化了网络模型。
1 - ifelse2023-02-08 来自浙江程序上大图片和大视频进行质量压缩,返给接口压缩后的文件
作者回复: great
1 - 功夫熊猫2021-10-31感觉还有好多比如数据库的读写,线程(协程)的并发通信以及锁的粒度也可能影响速度,还有静态资源在浏览器的渲染也挺费时间的。
作者回复: http优化涉及的环节很多,有的是与http协议无关的,要是都说出来可能不太现实,欢迎大家补充。
- joel2021-10-22老师,请教一个关于最多6个并发连接的问题。 假如现在有10个资源,一个tcp 最多支持6个请求,那当第7个请求的时候,能不能在重新开一个tcp 链接,然后继续请求资源。还是说只能在现有的tcp 链接上等待。
作者回复: 最多6个并发连接是浏览器的限制,如果是我们自己写客户端,可以完全不受限制,开多少都可以。
共 2 条评论 - 胡戎2021-05-28“总时间 415.04 毫秒里占了差不多 99%。” 我一直在怀疑jmeter等测试工具测试的响应时间指标是否准确,如webgis系统。 老师有没有什么方法可以准确的测出用户从请求到渲染排版结束正常显示的时间,特别是多用户。
作者回复: 这个属于前端的问题了,不是http协议,我也不是很擅长前端,抱歉帮不上忙,不过看Chrome的开发者面板应该还凑合吧。
- 果汁2020-05-21老师我想问一下那个并发6个请求的问题,应该不只是6个XHR请求吧,其中也包括请求js、css文件这些请求
作者回复: http请求连接数与内容无关,任何请求都会限制在最多6个连接里。
- 钱2020-04-02性能优化的思路是相通的,不过具体到每一个细分的领域具体措施又是不一样的。 作为业务研发除代码层、系统设置层、软件系统架构层的性能优化,感觉其他的涉足的都比较少,感觉无能为力,比如:带宽不够、机器不好这些公司级别的人物才能推动。 水管理论,找“细管”,然后换“粗管”,如果换不了基本没辙了。
作者回复: 学的很快啊,都到最后这几节了。
共 2 条评论 - 子杨2020-02-23老师好,想请问对于 HTTP 的首字节优化可以从哪些地方入手呢?根据 Chrome 的分析来看,从响应开始,首字节占据了很大一部分时间。
作者回复: 缓存是关键,比如外部的cdn,内部的redis、memcache,剩下的就是内部系统优化了。
- 业余草2019-09-03ab测试,就是破坏rfc的标准。这个标准服务器端是没法限制的,只能靠客户端的自觉性。
作者回复: 是的,不过因为是测试,所以就不用太在意了。