我没有在w3.org找到答案。
几乎所有示例都包含soap-response http-header中的内容长度。
第一个Q: 但这在技术上是否必要?
我正在努力使用一个soap-soap,其中php-soap-library(PEAR SOAP_Server)正在设置响应xml的正确内容长度,但之后的lighttpd正在压缩内容,所以我得到的响应比内容长度。
像soapUI这样的应用程序正在等待内容(由http-header设置)到达。
第二个Q:
修改 进一步的调查显示,php脚本正在压缩内容本身并且始终设置umcompressed内容长度,而不是lighttpd。
尽管Tom van der Woerdts回答非常有帮助。
答案 0 :(得分:3)
第一个问题
不,因为HTTP 1.1 spec不需要Content-Length
标头,而SOAP建立在HTTP之上。您的SOAP客户端可能需要它,但SOAP本身不需要它。 (SOAP spec甚至不包含单词“length”)
第二个问题
PHP可能在那里错了。它不应该设置Content-Length
标头。 lighttpd可能也有点不对,因为如果它改变了内容,它应该真正覆盖Content-Length
标题。 soapUI可以解决这个问题,因为SOAP基于XML,它具有非常清晰的EOF(结束标记)。
我建议不要让PHP设置Content-Length
标题。