工作杂碎:关于ios11 https 请求头 Accept-Encoding设置为Brotli

场景:前天项目出现了个bug,ios10及以下系统正常,但ios11在使用https请求文件流和数据流,返回的数据出现乱码,但是设置为http时则是正常。

决解过程:

1、通过抓包发现ios11 的https的请求头Accept-Encoding为 br,gzip, deflate

http 的请求头Accept-Encoding为gzip, deflate

2、br是什么东东?

什么是Brotli

Brotli最初发布于2015年,用于网络字体的离线压缩。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。其中的编码器被部分改写以提高压缩比,编码器和解码器都提高了速度,流式API已被改进,增加更多压缩质量级别。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。

工作杂碎:关于ios11 https 请求头 Accept-Encoding设置为Brotli

与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、短语和其他子字符串,这些来自一个文本和HTML文档的大型语料库。预定义的算法可以提升较小文件的压缩密度。

使用brotli取代deflate来对文本文件压缩通常可以增加20%的压缩密度,而压缩与解压缩速度则大致不变。

3、为啥http是正常的??

需要注意的是,只有在HTTPS的情况下,浏览器才会发送br这个Accept-Encoding。

4、为啥只有ios11才有啊??

看来是ios11才支持

工作杂碎:关于ios11 https 请求头 Accept-Encoding设置为Brotli

5、最后怎么解决??

第一种方案、app端强制修改Accept-Encoding请求头哦,坑爹,又是我背锅!!

第二种,后台修改支持brotli压缩算法,正确选择!

展开阅读全文

页面更新:2024-04-23

标签:语料库   离线   杂碎   数据流   编码器   解码器   字符串   短语   字节   算法   密度   字典   单词   软件工程师   速度   文件   数码   工作

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top