Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

普通 http 与 spdy 的加载差异

  普通的 http 请求是半双工,在同一时刻只能传输请求或传输响应。spdy 则是全双工的,在接收响应的过程中还可以复用 TCP 连接来发起其它请求。在普通 http 的时代,我们经常会遇到慢请求占满浏览器请求限制,导致其它请求无法正常处理的情况。使用 spdy 完美解决问题!
  下面写了一个小程序,让页面瞬间发起 100 个请求,同时在浏览器开发者工具中将网络速度限制为 2G 环境做测试: <script> Promise.all(Array.from( { length: 100 }, (value, index) => fetch('?' + index) )).then(list => { console.log(list.map(response => response.status)); }); </script>
  普通的 http 请求由于并发数有限,所以请求会陷入等待状态,也就是上图第一个结果 timeline 的那一坨灰色。而使用 spdy 的请求很快就会向服务器发起。但是由于下载带宽有限,所以后面的请求得到响应会慢一些。从结果来看,spdy 耗时的部分主要是等待首字节响应。
  注意这里测试的是对一个静态资源的请求,服务器响应时间完全可以忽略的。即便如此 spdy 也比普通的 http 快一些,如果服务器响应事件比较长呢?于是我们再做这样的测试,放置一个 sleep 1 秒的资源
<?php sleep(1); ?>
  只要服务器的速度够快,spdy 请求速度就会快到爆,完全不受连接数限制影响。上面这个 spdy 的测试理论上 finish 的时间可以降 2s 以内的,只是碍于我的 php-fpm 配置的并发数量不够而已。
网名:
54.146.176.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^