2

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

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

第一问:但这在技术上是必要的吗?

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

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

第二问:

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

编辑: 进一步调查显示,php-script 正在压缩内容本身,并且始终设置 umcompressed Content-length,而不是 lighttpd。

不过Tom van der Woerdts 的回答非常有帮助。

4

1 回答 1

3

第一个问题
不,因为HTTP 1.1 规范不需要Content-Length标头,而 SOAP 是建立在 HTTP 之上的。您的 SOAP 客户端可能需要它,但 SOAP 本身不需要。(SOAP 规范甚至不包含“长度”这个词)

第二个问题
PHP 在那里可能是错误的。它不应该设置Content-Length标题。lighttpd 可能也有点错误,因为Content-Length如果它更改内容,它应该真正覆盖标题。而且soapUI 可以纠正这个问题,因为SOAP 基于具有非常清晰的EOF(结束标记)的XML。

我建议不要让 PHP 设置Content-Length标题。

于 2012-04-23T14:23:48.893 回答