高级前端http【Q110】http 的请求报文与响应报文的格式是什么

http 的请求报文与响应报文的格式是什么

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 111

Author 回答者: shfshanyue

nc 模拟 http 报文如下

$ nc www.baidu.com 80
GET / HTTP/1.1
Host: www.baidu.com
 
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: no-cache
Connection: Keep-Alive
Content-Length: 14615
Content-Type: text/html
Date: Tue, 10 Dec 2019 02:48:44 GMT
P3p: CP=" OTI DSP COR IVA OUR IND COM "
P3p: CP=" OTI DSP COR IVA OUR IND COM "
Pragma: no-cache
Server: BWS/1.1
Set-Cookie: BAIDUID=F0FC6B3A056DEA285F51A1F2F8A170BB:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BIDUPSID=F0FC6B3A056DEA285F51A1F2F8A170BB; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: PSTM=1575946124; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
Set-Cookie: BAIDUID=F0FC6B3A056DEA287CB2B9422E09E30E:FG=1; max-age=31536000; expires=Wed, 09-Dec-20 02:48:44 GMT; domain=.baidu.com; path=/; version=1; comment=bd
Traceid: 1575946124058431156210725656341129791126
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1
 
<!DOCTYPE html><!--STATUS OK-->
........内容省略

GET 请求报文如下:

POST 请求报文如下:

Author 回答者: Echo-MakeGreatEffort

请求报文:

  1. 请求行:<方法><请求目标><http协议版本>
  2. 请求头:<头部字段名>: <值>
  3. 空行
  4. 请求体

响应报文:

  1. 状态行:<HTTP版本> <状态码> <原因短语>
  2. 响应头部:<头部字段名>: <值>
  3. 空行
  4. 响应体