标签:浏览器 206 微信 链接 range 测试 word bug
有用户反应点击下载附件时没有反应,让用户把该下载链接复制到微信对话框中,发现点击该链接仍然无反应,但是在内置的手机浏览器中打开是正常的而且可以下载。
链接地址,有需要的可以拿去进行测试:
http://file5.igrow.cn/2018/12/18/0b81c7b1c293bbd3c1808ccf4f009d2a.doc
step1:
把上面那个链接拿过来测试,公司所有人电脑端的浏览器都可以点开,再进行手机端测试,大部分人的手机都可以正常点开,只有一款诺基亚X7点击没反应,于是进行抓包分析
step2:
拿诺基亚X7和正常的手机行对比测试,打开同一个链接,返回的状态码都是206,206的解释如下:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status/206
所以微信浏览器加载上述那个word时,自动添加了range请求头,所以服务器返回的是范围响应,就有了206
再继续进行分析,2个手机发起的请求头分别如下(注:点开的是同一个链接):
对比分析上面2个请求,发现range的范围有差异,同一个请求,不同的手机在微信里打开,微信浏览器自动添加的range请求头居然不一样?!
继续翻文档,发现range的请求范围在MDN文档里的写法是:
那我这个Range: bytes=4344-4344感觉只取了一个字节的数据,但是居然可以正常打开图片。。。
为了重现该写法,用crul进行range范围测试:
新建一个txt文件,内容只有hello,world,共11个字节,
启动一个本地服务器,用来读取该文件,然后用curl进行访问,按照MDN标准的range写法测试,返回的结果如下,content-length为11
再用微信浏览器帮我添加的range写法测试:
只返回了一个字节的数据,那为什么微信浏览器只取一个数据却可以正常显示图片呢?先记录下,有空了再继续研究吧。。
标签:浏览器,206,微信,链接,range,测试,word,bug 来源: https://www.cnblogs.com/soraly/p/10174293.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。