php - SOAP 响应 : is Content-Length required in http-header?

标签 php soap lighttpd

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

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

第一问:
但是技术上有必要吗?

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

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

第二问:

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

  • 编辑:
    进一步调查显示,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/

    相关文章:

    Python 脚本在lighttpd 下不执行

    apache + lighttpd 前端代理概念

    php - 在显示帖子编辑页面之前编辑帖子元数据的 Wordpress 钩子(Hook)

    C++ gSOAP wsdl 类型

    php - 使用 LEFT OUTER JOIN 返回一个匹配的行和附加的仅匹配的 id

    java - soap 对象应该使用构造函数还是 setter 来创建?

    windows - 如何在Windows服务上添加证书

    mod-rewrite - Lighttpd 配置,. (点)在我的查询字符串中导致 404

    php - mysql SELECT(需要连接到 2 个表并显示搜索结果)

    php - 面临 $.fn.yiigridview.update 、过滤器、排序、分页重置为空的问题