我最近开始在我的网站上使用gzip,它在除Opera之外的所有浏览器上都起到了一种魅力作用,它给出了一个错误,即由于数据损坏而无法解压缩内容.从我可以从测试和谷歌搜索中收集到的,使用gzip和chunked传输编码可能是一个问题.请求像css文件这样的小文件时没有错误这一事实也指向了这个方向.

这是一个已知问题还是还有其他一些我没想过的问题?

有人还提到它可能与发送Content-Length标头有关.

以下是我的代码中最相关部分的简化版本:

$contents = ob_get_contents();

ob_end_clean();

header('Content-Encoding: '.$encoding);

print("\x1f\x8b\x08\x00\x00\x00\x00\x00");

$size = strlen($contents);

$contents = gzcompress($contents, 9);

$contents = substr($contents, 0, $size);

print($contents);

exit();

解决方法:

GZip和chunked编码在Web上一直使用,所以我怀疑问题是由单独引起的.

如果正在使用分块编码,则不应发送Content-Length标头.

此外,当你协商gzip时,你应该发送Vary:Accept-Encoding(关于压缩和未压缩的响应),如果你发送ETag,它们需要对压缩和未压缩的响应有所不同.

尝试通过http://redbot.org/运行URL – 它检查gzip编码的一些常见问题.

标签:php,http,compression,gzip,chunked-encoding

来源: https://codeday.me/bug/20190724/1518760.html

php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip相关推荐

  1. python open encoding为无效的参数_TypeError:“encoding”是无效的关键字参数ex23.py

    第一个问题.我正在努力学习python,我正在练习23.我键入的代码与Zed illustrated的书一模一样.我收到错误信息.我在谷歌和这里到处寻找答案,但我仍然没有找到任何适用的答案.下面是我的 ...

  2. java chunked编码解码,chunked编码解码实现

    TransferEncoding.java是chunked编码解码实现java代码 import java.io.BufferedReader; import java.io.ByteArrayInp ...

  3. [Style Transfer]——Perceptual Losses for Real-Time Style Transfer and Super-Resolution

    Perceptual Losses for Real-Time Style Transfer and Super-Resolution 基于感知损失函数的实时风格转换和超分辨重建 from ECCV2 ...

  4. python中encoding是什么意思_python中encoding是什么意思

    encoding是编码的意思,在python中,Unicode类型是作为编码的基础类型. Python encode() 方法以encoding指定的编码格式编码字符串.errors参数可以指定不同的 ...

  5. python encoding=utf-8什么意思_python中encoding是什么意思

    encoding是编码的意思,在python中,Unicode类型是作为编码的基础类型. Python encode() 方法以encoding指定的编码格式编码字符串.errors参数可以指定不同的 ...

  6. php transfer-encoding: chunked,“Transfer-Encoding: chunked” header in PHP

    问题 i want to add Transfer-Encoding: chunked header to the file that i'm outputing (its just generate ...

  7. HTTP CHUNKED

    服务端给浏览器发送报文时,必须告诉浏览器报文的大小,这样浏览器可以根据报文大小来判断报文的完整性以及在长连接中确定报文的截尾.但是很多服务器的报文是动态创建的,在发送之前是无法确定其大小的.服务器只有 ...

  8. java chunked编码解码_HTTP1.1中CHUNKED编码方式传输数据的解析

    "隐网项目"的图片下载模块需要与HTTP Response报文打交道,由于使用的是C++,没有java中十分好用的httpclient,所以打算自己实现.之前考虑的比较简单,假设请 ...

  9. HTML中chunked解码和gzip解压

    chunked编码 chunked编码的的好处 当访问的时动态页面时,服务器则无法预知内容的大小,因此需要一遍产生数据,一边发送数据,将数据分块发送(服务器通过响应头'Transfer-Encodin ...

最新文章

  1. CentOS6静态网络配置
  2. python怎么封装方法然后调用_Python实现封装打包自己写的代码,被python import
  3. CRM WebClient UI Relationship drop down list render logic
  4. 基于HTML5陀螺仪实现ofo首页眼睛移动效果
  5. shell脚本中的条件测试if中的-z到-d的意思
  6. HOWTO:FirePHP乱码问题解决
  7. 为什么大家拍摄视频不用摄像机,反而选用单反照相机呢?
  8. SSL WSS HTTPS
  9. 分享一下老型号macbook pro在win10下安装BootCamp6.0驱动的方法
  10. 公安部就《易制爆危险化学品治安管理办法》征求意见
  11. ubuntu加入Windows的AD域(使用SSSD和Realm的方式)
  12. Windows11 无法打开应用商店
  13. 【程序员学理财】零和博弈和对股市的一些了解
  14. 人生只求少点烦恼多点快乐
  15. 安吉县人力资源和社会保障局数据中心容灾备份项目
  16. 什么是UEFI启动?
  17. Java代码实现点赞功能
  18. 1114:【白细胞计数】
  19. EC20 HTTP 图片传输
  20. 机器学习实战——训练模型

热门文章

  1. css3 filter url,CSS3 filter(滤镜) 属性
  2. C语言求x和y的乘积,计算方程式,求x,C语言中怎么计算x,y的值?
  3. Java 获取链表的元素
  4. Jsoup解析HTML字符串
  5. python视频提取音频_python脚本实现mp4中的音频提取并保存在原目录
  6. jenkins 安装插件失败_Jenkins 自动化安装插件
  7. php里面的MySql
  8. 零窗口探测怎么抓包_Linux服务器下的HTTP抓包分析
  9. matlab中结束脚本运行_MATLAB脱单指南
  10. mysql 社区版密码如何修改_如何用优雅的方法修改MySQL root密码