我在 w3.org 中没有找到答案。
几乎所有示例都包含soap-response http-header 中的内容长度。
第一问:
但是技术上有必要吗?
我正在努力使用 SOAP 服务,其中 php-soap-library (PEAR SOAP_Server) 正在设置响应 xml 的正确内容长度,但之后的 lighttpd 正在压缩内容,因此我得到的响应比内容长度要小.
一些应用程序如soapUI 正在等待所有内容(由http-header 设置)到达。
第二问:
内容长度 header ?
编辑:
进一步调查显示,php-script 正在压缩内容本身,并且始终设置 umcompressed Content-length,而不是 lighttpd。
尽管如此 Tom van der Woerdts回答很有帮助。
最佳答案
第一个问题
不,作为HTTP 1.1 spec不需要 Content-Length
header 和 SOAP 建立在 HTTP 之上。您的 SOAP 客户端可能需要它,但 SOAP 本身不需要。 (SOAP spec 甚至不包含“长度”这个词)
第二个问题
PHP可能是错误的。它不应该设置 Content-Length
标题。 lighttpd 可能也有点错误,因为它真的应该覆盖 Content-Length
标题,如果它改变了内容。并且soapUI 可以纠正这个问题,因为SOAP 基于具有非常清晰的EOF(结束标记)的XML。
我建议不要让 PHP 设置 Content-Length
标题。
关于php - SOAP 响应 : is Content-Length required in http-header?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10282185/