使用块编码(chunked)的好处

摘自:《高性能网站建设进阶指南》

1、通过块编码,HTML文档可以被分成多个数据块返回,每个响应的数据块都以标识其大小的指示符为开头。这就允许浏览器在下载数据包后立马立马进行解析,使得页面的加载速度更快;(因为大多数浏览器都是在HTML文档加载完毕才开始渲染页面,并同时下载页面上的资源;在采用块编码时,PHP采用flush函数立即刷新缓冲区,这样浏览器在只加载完少量HTML文档后,就开始进行渲染和资源下载,所以提高了页面的展现速度);

2、如果不采用块编码,响应必须包含一个Content-Length的头信息。这就意味着服务器在将整个响应组合在一起,并计算出大小之前,是不会开始发送响应信息。通过块编码,服务器可以尽早发送响应,因为它只需要知道每个发送块的大小即可;

3、某些情况下,我们无法知道在创建HTML文档之前知道是否需要一个头,或者它的具体内容应该是什么。通常,这些头必须在响应的最开始发送,这就意味着服务器在这些耗时操作的数据库查询或web服务调用结束前,是无法发送响应的。然而,当使用块编码后,这些头就可以被延迟发送。最开始的块会被立即发生,在这个块中会通过Trailer头来列举出那些将会被延迟发送的头。

例如:

Trailer: Cookie

Trailer: ETag

4、Bigpipe中主要利用块编码来让浏览器与服务器进行并行处理,让浏览器在接收数据的同时可以同时并行的去渲染页面;

V4版微博中便是采用了Chunked编码与Bigpipe技术的结合,有效的加快了页面的TTI时间;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值