Apache-2.2

如何禁用傳輸編碼:在 Apache 中使用 HTTP/1.1 響應分塊

  • July 20, 2020

我有一個 mod_include (SSI) 頁面,當 HTTP/1.1 瀏覽器請求時,該頁面在分塊編碼期間生成錯誤輸出。

當 HTTP/1.0 請求時,頁面輸出正常(因為輸出沒有分塊)。

當 HTTP/1.1 瀏覽器請求時,我如何告訴 Apache不要使用分塊編碼?

*更多資訊:*錯誤的分塊輸出是由於在具有 sparc 處理器的 Solaris 5.10 機器上啟用了 sendfile() 支持引起的。禁用 sendfile() 支持會導致此問題消失;但是我試圖抓住這個錯誤並修復它。

如果您預先指定 Content-length,Apache 將不必使用分塊。如果沒有 Content-length,Apache 就別無選擇,只能使用它。

需要明確的是:HTTP/1.0 管理它,因為 Apache 在發送之前讀取整個響應,所以它知道它會有多大。這是非常低效和緩慢的,AFAIK 沒有辦法為 HTTP/1.1 請求啟用此邏輯,除非強制它們使用 HTTP/1.0(你真的,真的不想這樣做,是嗎?如果你這樣做,要設置的環境變數是“downgrade-1.0”

引用自:https://serverfault.com/questions/155558