Apache-2.2

Apache 2.2 中的“傳輸編碼:分塊”問題

  • June 6, 2012

我們的 Web 服務客戶端之一使用發送 HTTP 1.1 查詢的 axis2 應用程序:

Transfer-Encoding: chunked

標題。我們的 Apache 2.2 拒絕了這樣的查詢,並顯示以下消息:

<title>411 Length Required</title>
</head><body>
<h1>Length Required</h1>
<p>A request of the requested method POST requires a valid Content-length.<br />

在 Apache 日誌中有:

[Mon May 17 09:06:04 2010] [error] [client 127.0.0.1] chunked Transfer-Encoding forbidden: /app/webservices/soap.hdb

Transfer-Encoding: chunked當我在沒有和Content-Length所有工作正常的情況下發送此類消息時。我搜尋瞭如何解決這個問題,但我只發現如何Transfer-Encoding: chunked在客戶端禁用。

作為客戶端,我使用了我添加/刪除標頭的Transfer-Encoding: chunkedsoapUI(當我添加此標頭soapUI 時不發送Content-Length標頭)。作為伺服器,我使用:CentOS 上的 Apache/2.2.3,但我也在 Windows 上使用“全新”安裝的 Apache 2.2.15 對其進行了測試。

有沒有辦法在伺服器端啟用分塊查詢?

從我在 apache 的網站上找到的內容,chunking僅受 HTTP/1.1 支持,也許您的伺服器或軟體在配置中設置為 HTTP/1.0。http://ws.apache.org/axis2/1_0/http-transport.html

除此之外,我會查看錯誤消息中指示的文件,看看是否有任何提示在那裡進行分塊。{DocumentRoot}/app/webservices/soap.hdb

您可以在axis2.xml 上禁用/啟用分塊

分塊意味著雖然傳輸總大小是未知的,但這在生成動態內容時很有幫助。

提示:

HTTP 1.0 不支持分塊編碼。

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