您的位置:首页 > 业内资讯 > 全栈工程师眼中的 HTTP

全栈工程师眼中的 HTTP

来源:developerWorks | 时间:2016-01-20 10:16:43 | 阅读:91 |  标签: developerWorks   | 分享到:


尽量减少每一个资源的体积

我们不光要限制请求数,还要尽量减少每一个资源的体积。因为资源的体积越大,在传输中消耗的流量就越多,等待时间也越久。


在面试应聘者的时候,我会问的一个基础题目是“常用的图片格式有哪些,它们的使用场景是什么”。如果能选择合适的图片格式,就能够用更小的体积,达到更好的显示效果。对图片格式的敏感,能反映出工程师对带宽和速度的不懈追求。


此外,对于比较大的文本资源,必须开启gzip压缩。因为gzip对于含有重复“单词”的文本文件,压缩率非常高,能有效提高传输过程。


对于一个CSS资源的请求耗时,我想说明两个细节。

  • 这个CSS资源请求的体积是36.4KB(这是gzip压缩过的体积),解压缩之后,CSS内容实际上是263KB,可以算出压缩后体积是原来的13.8%。

  • 整个连接的建立花费了30%的时间,发出请求到等待收到第一个字节回复花费了20%的时间,下载CSS资源的内容花费了50%的时间。


如果没有设置gzip,下载这个CSS文件会需要好几倍的时间。


后台视角

前端工程师对HTTP的关注点在于尽量减少同一域下的HTTP请求数,以及尽量减少每一个资源的体积。与之不同,后台工程师对于HTTP的关注在于让服务器尽快响应请求,以及减少请求对服务器的开销。


后台工程师知道,浏览器限定对某个域的并发连接数,很大程度上是浏览器对服务器的一种保护行为。浏览器作为一种善意的客户端,为了保护服务器不被大量的并发请求弄得崩溃,才限定了对同一个域的最大并发连接数。而一些“恶意”的客户端,比如一些下载软件,它作为一个HTTP协议客户端,不考虑到服务器的压力,而发起大量的并发请求(虽然用户感觉到下载速度很快),但是由于它违反了规则,所以经常被服务器端“防范”和屏蔽。


那么为什么服务器对并发请求数这么敏感?


虽然服务器的多个进程看上去是在同时运行,但是对于单核CPU的架构来说,实际上是计算机系统同一段时间内,以进程的形式,将多个程序加载到存储器中,并借由时间共享,以在一个处理器上表现出同时运行的感觉。由于在操作系统中,生成进程、销毁进程、进程间切换都很消耗CPU和内存,因此当负载高时,性能会明显降低。

小编推荐阅读

好特网发布此文仅为传递信息,不代表好特网认同期限观点或证实其描述。

相关视频攻略

更多

扫二维码进入好特网手机版本!

扫二维码进入好特网微信公众号!

本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件admin@haote.com

湘ICP备2022002427号-10 湘公网安备:43070202000427号© 2013~2024 haote.com 好特网