http报文结构
HTTP 协议不负责传输的工作,其核心部分是传输的报文内容。
HTTP 协议的请求报文和响应报文结构基本相同,由三大部分组成:
-
起始行(start lint):描述请求或响应的基本信息
-
请求行
由三部分组成:请求方法,请求目标,版本号,三部 分通常使用空格分隔。
GET / HTTP/1.1
-
状态行
由三部分组成:版本号,状态码,原因
HTTP/1.1 200 OK
-
-
头部字段集合(header):用 key-value 的形式更详细的说明报文
请求行或状态行再加上头部字段集合就构成了 HTTP 报文里完整的请求头或响应头
头部字段可分为四大类:
- 通用字段
- 请求字段
- 响应字段
- 实体字段:专门描述body的额外信息,例如
Content-Length
请求字段中的Host字段是HTTP协议中规定的必须出现的字段。其作用是告诉服务器当前请求该使用哪个主机来处理。
-
消息正文(entity):实际传输的数据
消息正文很多时候直接称为“body”
HTTP 协议规定报文必须有 header,但可以没有 body。而且在 header 之后必须要有一个“空行”,可以理解成 header 和 body 的区分标识。