HTTP/1.1 headers 的新行定义

New Line definition for HTTP/1.1 headers

我有一个发出 HTTP POST 请求的嵌入式系统,但是我知道 headers 必须有一个格式。

在这种情况下,我有这样的要求:

POST / HTTP/1.1\n
Host: 192.168.1.15\n
Connection: close\n
Content-Length: 44\n
Content-Type: application/json\n
\n
{\n
"command": "snapPicture",\n
"selfTimer": 0\n
}

我想在发送此请求时避免任何类型的错误。

  1. 严格来说,用\n告诉new line是正确的还是应该是\r\n?

  2. 对这种请求格式有什么建议吗?

感谢您的帮助。

您必须使用 \r\n 来分隔 header,还要将 body 与 header 部分分隔开。见 RFC 7230 (Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing), section 3. Message Format:

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

CRLF\r\n

请求的其余部分是否有效,尤其是 body,取决于您将其发送到的服务器。