【问题标题】:soap-response: is Content-Length required in http-header?肥皂响应:http-header 中是否需要 Content-Length?
【发布时间】:2012-04-23 22:40:13
【问题描述】:

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

几乎所有示例都包含肥皂响应 http-header 中的内容长度。

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

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

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

第二个问题:

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

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

不过Tom van der Woerdts 的回答还是很有帮助的。

【问题讨论】:

    标签: php soap lighttpd


    【解决方案1】:

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

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

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

    【讨论】:

    • 您还记得 RFC 的哪一部分说不需要 Content-Length 标头吗?我一直在寻找它。
    • 第4.4节(消息长度),关于兼容HTTP/1.0的部分
    猜你喜欢
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多