HTTP Chrome请求中的CRLF

时间:2018-12-10 13:59:11

标签: http newline

根据RFC(72302616),HTTP消息为:

    generic-message = start-line
                      *(message-header CRLF)
                      CRLF
                      [ message-body ]
    start-line      = Request-Line | Status-Line


   message-header = field-name ":" [ field-value ]
   field-name     = token
   field-value    = *( field-content | LWS )
   field-content  = <the OCTETs making up the field-value
                    and consisting of either *TEXT or combinations
                    of token, separators, and quoted-string>

因此,单个CRLF被视为EOL符号。但是,当我收到对Chrome或Firefox的请求时,会看到额外的CR

Request HEX text

应该是什么解析规则?

1 个答案:

答案 0 :(得分:0)

就像乔恩·波斯特尔(Jon Postel)在许多RFC中所说的那样,“在接受的内容上保持自由,在发送的内容上保持保守”。

格式正确的客户绝不应该发送这样的内容。但是会发生错误,并且必须在某些地方进行换行转换。因此,只要您可以安全地处理这些情况,将这些换行符(通常将任何+-----------+----------+ |productCode| amount| +-----------+----------+ | XX-1| 250| | XX-2| 410| | XX-9| 50| | XX-10| 35| | XX-13| 300| | XX-100| 870| +-----------+----------+ 序列解析为正则表达式)作为标头中的单个换行符应该是最好的方法

如果您根本无法解析标头,则只需返回错误请求错误即可。