soap-response:http-header中是否需要Content-Length?

时间:2012-04-23 14:08:34

标签: php soap lighttpd

我没有在w3.org找到答案。

几乎所有示例都包含soap-response http-header中的内容长度。

第一个Q: 但这在技术上是否必要?

我正在努力使用一个soap-soap,其中php-soap-library(PEAR SOAP_Server)正在设置响应xml的正确内容长度,但之后的lighttpd正在压缩内容,所以我得到的响应比内容长度。

像soapUI这样的应用程序正在等待内容(由http-header设置)到达。

第二个Q:

  • 这个链中的行为/配置错误是谁? php - > lighttpd - >的soapUI
  • 是设置解压缩内容长度的php代码吗?
  • 是lighttpd,它压缩响应,但不会覆盖或删除 content-length header?
  • 或者是soapUI,它不应该等待15秒才能获得更多内容?

修改 进一步的调查显示,php脚本正在压缩内容本身并且始终设置umcompressed内容长度,而不是lighttpd。

尽管Tom van der Woerdts回答非常有帮助。

1 个答案:

答案 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标题。