HTTP 报文结构
HTTP 请求报文和响应报文的组成部分及格式规范
问题
HTTP 报文由哪些部分组成,请求报文和响应报文有什么区别?
解答
HTTP 报文采用 header + body 的结构,完整组成为:起始行 + 头部 + 空行 + 实体
起始行
请求报文的起始行(请求行):
GET /home HTTP/1.1
格式:方法 + 路径 + HTTP版本
响应报文的起始行(状态行):
HTTP/1.1 200 OK
格式:HTTP版本 + 状态码 + 原因短语
注意:起始行中每两个部分之间用空格隔开,最后一个部分后面接换行符,严格遵循 ABNF 语法规范。
头部
头部字段格式规范:
- 字段名不区分大小写
- 字段名不允许出现空格,不可以出现下划线
_ - 字段名后面必须紧接着冒号
:
示例:
Content-Type: application/json
Content-Length: 1024
空行
空行用来区分头部和实体,非常重要。如果在头部中间加入空行,空行后的内容会被视为实体部分。
实体
实体是具体的数据内容,即 body 部分。请求报文对应请求体,响应报文对应响应体。
关键点
- HTTP 报文结构:起始行 + 头部 + 空行 + 实体
- 请求行格式:方法 + 路径 + HTTP版本
- 状态行格式:HTTP版本 + 状态码 + 原因短语
- 头部字段名后必须紧跟冒号,不允许空格和下划线
- 空行是头部和实体的分隔符,不可省略
目录