Web性能 自学

书:Web 性能 权威指南 著Ilya Grigorik



本人旨在自学web性能方面,主要是也看了上面那本书,本人是程序猿一枚看此书只是把重点记录下来,到时候再细研究,

大家一起学习。


一、网络部分

1、延迟与带宽

2、TCP

调整调整TCP初始拥塞窗口大小为10;

禁用空闲后的慢启动;

确保启动窗口缩放;

减少传输冗余数据;

压缩要传输的数据;

把服务器放到离用户近的地方;

尽可能重用已经建立的TCP连接。

3、UDP

与TCP不同的协议,该协议主要是传输速度快,该协议省略了连接状态、握手、重发、重组、重排、拥塞控制、拥塞预防、流量控制、错误检测等。

说了这么多,就是可以理解,只有源地址、目标地址、验证串码和元数据。

因此它简单又快,但是就没有相应的功能。

建议在局域网中使用,或是需要针对没有的功能再开发,具体咋弄就不知道,到时候再研究。、

4、TLS传输层安全

还有SSL等都是加密验证、然后再解密取数据,这中间就多了很多交互过程,也是影响性能一个因素。

性能检查清单

4.1 tls库升级到最新版本,并在此基础构建服务器;

4.2 ssl2.0 会话缓存默认是关闭的,启用并配置缓存大小及会话超时时间;

4.3在接近用户的地方完成tls会话,减少往返的延迟;

4.4配置tls记录的大小,使其恰好能封装在一个tcp段中;

4.5 确保证书链不会超过拥塞窗口的大小;比如,证书链的长度是5K,拥塞窗口大小是60K就没有问题,如果证书链是100K的话,需要多一次往返;

4.6从信任链中去掉不必要的证书,减少链条层次;无用的证书链会加大客户端和服务器的验证时间;

4.7禁用服务器tls的压缩功能,tls压缩会暴漏严重的安全漏洞,而且一般数据都是已经压缩过的,类似于zip压缩后再压缩提升的不明显;

4.8启用服务器对SNI的支持;

4.9启用服务器的OCSP(在线证书状态协议)封套的功能,客户端需要检查证书的有效性,部分浏览器支持,该检查的操作有服务器执行,浏览器跳过在线查询;

4.10追加对HTTP严格传输安全首部。

......中间扒拉一堆移动网络解释,已经完全超出我的理解。过。

10、Web性能要点

延迟、带宽、计算机性能,这些对于Web性能确实有一定的影响,但是相对而言不是主要因素,忽略。

10.1针对浏览器优化的建议

10.1.1基于文档的优化,尽量先加载页面,先保证交互产生;

10.1.2推测性优化,预先解析DNS、预先连接可能的目标。UC浏览器中百度分页下一页就有这功能,不知道是不是一个意思。

10.1.3资源欲取和有限次序

10.1.4DNS预解析

10.1.5TCP欲连接,就是根据10.1.2的需求,将TCP连接欲打开;

10.1.6页面欲渲染某些浏览器,在10.1.2中,在隐藏的标签页中预先渲染整个页面。

11、HTTP1.X

11.0网络优化

11.0.2减少DNS查询

11.0.3减少HTTP请求

11.0.4使用CDN,离用户近的地方

11.0.5添加Expires首部并配置ETag标签

11.0.6Gzip资源,所有文本资源都应该使用Gzip压缩

11.0.7避免HTTP重定向,尤其是一个完全不同的域名会更耗时间

11.1持久化连接

假设页面只有一个html一个css文件,如果不使用持久化连接的话,就需要加载html时,客户端和服务器做一个TCP连接的三次握手,css做一次,然后再传输数据。

如果有TCP连接,就会节省一套握手操作,节约的额时间(N-1)*每次TCP连接的三次握手时间,这种规模在大型网站上相当的明显。

11.2HTTP管道

顾名思义,就是管道越大,一次性传输的东西就越多。但是由于管道的技术有限,应用需要把中断的连接进行重新处理,非常麻烦,目前不建议采用,等HTTP2.0的时候再说吧,但是肯定的是它也是优化的另一个方法,apple itunes就是鲜明的例子。

11.3使用TCP多个连接

HTTP1.X不支持“多路复用”,这个是啥意思?浏览器通过并行打开多个TCP连接,最多6个。

11.4域名分区shar1.example.com shar2.example.com

原理类似于集群,假如一个页面需要加载多个资源,这些资源都指定到一个机器方面,还是将资源分散到若干的服务器上同时加载快,很显然吧,但是肯定会有个临界点。


你可能感兴趣的:(系统设计,性能,web,服务器)