【问题标题】:HTTP Chunked transfer encoding: How do you send "\r\n"?HTTP 块传输编码:如何发送“\r\n”?
【发布时间】:2010-11-17 12:45:55
【问题描述】:

假设我尝试通过分块编码发送的正文包括“\r\n”,我该如何避免将其解释为分块分隔符?

例如"你所有的基地\r\n都属于我们"

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

【问题讨论】:

    标签: http chunked-encoding


    【解决方案1】:

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

    【讨论】:

    • 老话题,但这是我的答案,我给出了一个 RequestHeader+ChunkedBody+AfterHeader 示例。它应该说明换行符是如何工作的。 stackoverflow.com/a/16460234/185565
    【解决方案2】:

    按照设计,这根本不是问题。每个块指定其数据块的字节大小。每个数据块的内容是任意的,必须按原样接收,因此可以在其中包含换行符。如果客户端正确读取每个块(读取一行并从中解析字节大小,然后读取指定的字节数,然后读取换行符),则数据中是否存在换行符无关紧要,因为客户端根据字节大小读取数据,而不是换行符。

    【讨论】:

      猜你喜欢
      • 2013-05-08
      • 2011-03-27
      • 1970-01-01
      • 2015-11-05
      • 2017-06-30
      • 2013-09-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多