php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip
我最近開始在我的網站上使用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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python redis订阅_Pytho
- 下一篇: linux vi编辑器 Ctrl s,L