当前位置:首页 > 行业动态 > 正文

HTTP消息结构

HTTP消息分请求与响应,含起始行、头部、主体,请求含方法/URL/版本,响应含状态码/短语,均

HTTP请求消息结构

HTTP请求消息由4部分组成,具体结构如下:

HTTP消息结构  第1张

组成部分 说明
起始行 包含请求方法(GET/POST等)、URL路径、HTTP协议版本
请求头部 键值对形式的元信息(如Host、User-Agent、Content-Type)
空行 分隔头部和消息体的CRLF(`
`)
消息体 可选部分,用于携带POST/PUT等方法的数据

示例(GET请求)

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
(空行)

HTTP响应消息结构

HTTP响应消息同样由4部分组成:

组成部分 说明
起始行 包含HTTP版本、状态码(如200)、状态描述
响应头部 键值对形式的元信息(如Content-Type、Set-Cookie)
空行 分隔头部和消息体的CRLF(`
`)
消息体 可选部分,返回的资源内容(如HTML、JSON)

示例(200响应)

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
Server: nginx
<!DOCTYPE html>...(HTML内容)

关键字段解析

字段 作用 常见值
Host 指定服务器域名/IP www.example.com
Content-Type 描述消息体MIME类型 text/html / application/json
Content-Length 消息体字节长度 1234
Connection 控制连接特性(如keep-alive) keep-alive / close

相关问题与解答

问题1:如何判断HTTP消息是否包含消息体?

解答

  • 请求:当方法为POSTPUTPATCHDELETE且带有数据时,消息体存在。
  • 响应:当状态码为2004xx5xx且返回资源时(如HTML、JSON),消息体存在。
  • 标志:头部Content-LengthTransfer-Encoding: chunked表明有消息体。

问题2:HTTP头部字段Host的作用是什么?

解答
Host字段用于指定服务器的域名或IP地址,解决以下问题:

  1. 虚拟主机支持:同一IP可托管多个域名(如www.a.comwww.b.com)。
  2. 路由匹配:服务器根据Host值确定处理请求的虚拟站点配置。
  3. 安全验证:防止
0