代码之家  ›  专栏  ›  技术社区  ›  waterlooalex

HTTP分块传输编码:如何发送“\r\n”?

  •  5
  • waterlooalex  · 技术社区  · 15 年前

    假设我试图通过chunked编码发送的正文包含“\r\n”,如何避免将其解释为chunk delimeter?

    例如,“你所有的基地都属于我们”

    http://en.wikipedia.org/wiki/Chunked_transfer_encoding

    2 回复  |  直到 15 年前
        1
  •  15
  •   David    15 年前

    “\r\n”不是真正的块分隔符。块大小指定该块数据组成的字节数。然后,客户端应该读取嵌入在您的消息中的“\r\n”就可以了。

        2
  •  5
  •   Remy Lebeau    15 年前

    从设计上讲,这根本不是问题。每个块指定其数据块的字节大小。每个数据块的内容都是任意的,必须这样接收,这样才能在其中包含换行符。如果客户机正确读取每个块(读取一行并解析其中的字节大小,然后读取指定的字节数,然后读取换行符),那么数据中是否有换行符就无关紧要,因为客户机是根据字节大小而不是换行符来读取数据的。