【问题标题】:HTTP BOSH and HTTP pipeliningHTTP BOSH 和 HTTP 流水线
【发布时间】:2012-07-31 18:20:15
【问题描述】:

我对 HTTP BOSH 和 HTTP Pipelining 感到困惑。

BOSH 规格:http://xmpp.org/extensions/xep-0124.html

如果客户端需要向连接管理器发送一些数据,那么 它只是发送包含数据的第二个请求。 不幸的是 大多数受限客户端不支持 HTTP Pipelining(并发 通过单个连接请求),因此客户端通常需要 通过第二个 HTTP 连接发送数据。

在这个规范中有很多关于 HTTP 流水线的信息,但是来自 http://en.wikipedia.org/wiki/HTTP_pipelining

像 POST 这样的非幂等方法不应流水线化。

在 BOSH 规范中:

所有信息都编码在标准 HTTP POST 请求的正文中 和回应。每个 HTTP 正文都包含一个包装器 封装正在传输的 XML 元素(请参阅 Wrapper 元素)。

那么 HTTP 管道如何与 HTTP BOSH 一起使用??

【问题讨论】:

    标签: java http web xmpp


    【解决方案1】:

    HTTP RFC

    客户端不应使用非幂等方法或非幂等方法序列对请求进行管道传输(请参阅第 9.1.2 节)。

    本文中的“不应该”具有RFC 2119给出的含义,即,

    此短语或短语“不推荐”表示在特定情况下,当特定行为可接受甚至有用时,可能存在正当理由,但在实施所描述的任何行为之前,应了解全部含义并仔细权衡案例有这个标签

    这意味着,一般来说,不建议将 HTTP 管道与 POST 请求结合使用(这与 RFC 2616'sPOST 概念一致);但是,HTTP 协议实际上并没有禁止它。如果它实际上禁止了这种行为,RFC 2616 将使用“不得”的语言。 BOSH 规范的作者判断,在 BOSH 的情况下,流水线化 POST 请求没有不利影响。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-08
      • 2011-03-18
      • 2011-01-25
      • 2011-07-04
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 2011-04-02
      相关资源
      最近更新 更多