原来服务器一直不支持Range的断点续传,一下载就显示时chunked编码。
找了下原因,其实是apache配置里关于下载指令和支持编码的映射问题。在apache配置文件里涉及到的配置项是 AddEncoding 和 AddType,
apache会根据url指定的下载文件的类型来判断返回文件的编码类型。
AddEncoding里有两类,分别为x-gzip和x-compress,我的服务器里的配置是这样的:
AddEncoding x-compress .Z apk ttf isk
#AddEncoding x-gzip .gz .tgz
AddType application/x-font-ttf ttf ttc
AddType application/vnd.android.package-archive apk
application/iBookSkin isk
当下载apk,ttf, isk 文件时,apache就会以通用压缩编码格式返回,这样就能支持Range方式的断点续传了。
而这里屏蔽了x-gzip编码格式,拒绝这些格式的断点续传。