php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip
我最近開始在我的網(wǎng)站上使用gzip,它在除Opera之外的所有瀏覽器上都起到了一種魅力作用,它給出了一個錯誤,即由于數(shù)據(jù)損壞而無法解壓縮內(nèi)容.從我可以從測試和谷歌搜索中收集到的,使用gzip和chunked傳輸編碼可能是一個問題.請求像css文件這樣的小文件時沒有錯誤這一事實也指向了這個方向.
這是一個已知問題還是還有其他一些我沒想過的問題?
有人還提到它可能與發(fā)送Content-Length標(biāo)頭有關(guān).
以下是我的代碼中最相關(guān)部分的簡化版本:
$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上一直使用,所以我懷疑問題是由單獨引起的.
如果正在使用分塊編碼,則不應(yīng)發(fā)送Content-Length標(biāo)頭.
此外,當(dāng)你協(xié)商gzip時,你應(yīng)該發(fā)送Vary:Accept-Encoding(關(guān)于壓縮和未壓縮的響應(yīng)),如果你發(fā)送ETag,它們需要對壓縮和未壓縮的響應(yīng)有所不同.
嘗試通過http://redbot.org/運行URL – 它檢查gzip編碼的一些常見問題.
標(biāo)簽:php,http,compression,gzip,chunked-encoding
來源: https://codeday.me/bug/20190724/1518760.html
總結(jié)
以上是生活随笔為你收集整理的php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python redis订阅_Pytho
- 下一篇: php返回类中方法,php如何获取类中所