消息体之后是否有CRLF?

时间:2015-05-25 07:29:16

标签: http

我不知道在发送了正文的所有字节后,我是否应该发送下一条消息而没有CRLF将第一条消息的正文分隔到第二条消息的起始行。

这是根据RFC 7230的语法:

var coll = dt.AsEnumerable().Where(k => k.Field<string>(0).Contains("G")).Select(p => p).ToList();

根据语法,在正文的末尾没有CRLF,但它看起来很奇怪,因为其他所有东西似乎都被CRLF分开,特别是分块体的语法。

 HTTP-message   = start-line
                  *( header-field CRLF )
                  CRLF
                  [ message-body ]

这是没有CRLF的样子

 chunk          = chunk-size [ chunk-ext ] CRLF
                  chunk-data CRLF

这就是它的样子。

HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 3

abcHTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 3

那么,CRLF应该跟随身体吗?

2 个答案:

答案 0 :(得分:2)

  

It is easier for me to read with the CRLF.

然后您必须将其包含在邮件正文中:

  

RFC 7230, 3.5. Message Parsing Robustness

     

HTTP / 1.1用户代理不得作为前言      或者通过额外的CRLF跟随请求。如果终止请求      需要一个带行结尾的消息体,然后用户代理必须      计算终止CRLF八位字节作为消息体长度的一部分。

答案 1 :(得分:1)

不,当存在内容长度,并且未使用分块传输编码时,正文具有由content-length定义的长度。