HTTP 报文的结构是严格定义的:
- 起始行 (Start Line):例如
POST /path HTTP/1.1
- 头部字段 (Headers):
Key: Value
格式,每行一个,例如Content-Type: ...
- 空行 (Empty Line):一个空行(
CRLFCRLF
,即\r\n\r\n
)作为请求头和请求体之间的分隔符。这个空行是强制的,即使没有请求体也要有。 - 请求体 (Message Body):可选,如果存在,则根据
Content-Length
或Transfer-Encoding: chunked
指示的长度来读取。