http中请求和响应的结构是什么

HTTP 协议的请求报文和响应报文是通信的核心载体,二者结构相似,均由 三部分 + 一个空行 组成,具体格式如下:
一、 HTTP 请求报文结构
请求报文由客户端发送给服务器,结构分为 请求行 + 请求头 + 空行 + 请求体(请求体为可选部分)。
请求行是请求报文的第一行,包含 3 个核心字段,用空格分隔,末尾以 \r\n 结束。格式:请求方法 URL 协议版本示例:GET /index.html HTTP/1.1
请求方法:如 GET POST PUT DELETE
URL:要访问的资源路径
协议版本:如 HTTP/1.1 HTTP/2
请求头位于请求行之后,由多个键值对组成,每行一个键值对,格式为 键: 值,末尾以 \r\n 结束。请求头用于传递请求的元数据,比如客户端信息、接受的数据格式等。常见请求头示例:
plaintext
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0
Accept: text/html,application/json
空行是请求头和请求体的分隔符,仅由 \r\n 组成,必须存在,即使没有请求体也要保留。
请求体(可选)是请求的正文部分,仅在需要提交数据时存在(如 POST PUT 方法)。示例(POST 提交表单数据):
plaintext
username=test&password=123456
注意:GET 方法没有请求体,参数会拼接在 URL 后。
二、 HTTP 响应报文结构
响应报文由服务器发送给客户端,结构分为 状态行 + 响应头 + 空行 + 响应体。
状态行是响应报文的第一行,包含 3 个核心字段,用空格分隔,末尾以 \r\n 结束。格式:协议版本 状态码 状态描述示例:HTTP/1.1 200 OK
协议版本:与请求一致,如 HTTP/1.1
状态码:3 位数字,标识请求处理结果(如 200 成功、404 资源不存在)
状态描述:对状态码的文字解释,如 OK Not Found
响应头位于状态行之后,同样是 键: 值 格式的键值对,用于传递响应的元数据,比如服务器信息、响应体格式等。常见响应头示例:
plaintext
Server: Nginx/1.21.6
Content-Type: text/html; charset=utf-8
Content-Length: 2048
空行是响应头和响应体的分隔符,同样由 \r\n 组成,必须存在。
响应体是响应的正文部分,包含服务器返回的实际数据,比如 HTML 页面、JSON 数据、图片二进制流等。

posted @ 2025-12-22 10:42  丁智恒  阅读(1)  评论(0)    收藏  举报