http协议学习-1
1、http请求格式
请求 = 请求行 + 请求头 + 包体
请求行 = METHOD + 请求的path + http版本号,格式如下:
请求行\r\n
header名:header值\r\n
header名:header值\r\n
header名:header值\r\n
\r\n
包体
示例
用nc命令启动server处于监听状态,用postman发送一个http请求。
nc -kv -l 192.168.202.220 8082
分析
服务端收到的请求:
GET /request HTTP/1.1
Content-Type: application/x-www-form-urlencoded
executor_token: addb50eee9dbe5aa12b1d5494c2b5083c16b12e0cc831325d317c33a72fb68fc9fdf9c488975afc12eb350375d56e18d244ab069b36d1b3fece8ffb3611857fc
User-Agent: PostmanRuntime/7.37.3
Accept: */*
Postman-Token: e89098f9-90a8-4af6-8cb3-50f99e3ffcaa
Host: 192.168.202.220:8082
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 7
a=1&b=2
2、http响应格式
响应 = 状态行 + 响应头 + 包体
状态行 = 协议版本号 + http状态码 + 状态码说明字符串,格式如下:
状态行\r\n
header名:header值\r\n
header名:header值\r\n
header名:header值\r\n
\r\n
包体
示例
http的rfc文档:
RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
学习链接:https://github.com/0voice