http 请求报文的结构
一个完整的 HTTP 请求由 4 部分组成:
- 请求行(Request Line)
- 请求头(Request Headers)
- 空行(CRLF)
- 请求体(Request Body)
1. 请求行(必背)
格式:
请求方法 + URL + 协议版本
示例:
GET /index.html HTTP/1.1
- 请求方法:GET、POST、PUT、DELETE、HEAD、OPTIONS 等
- URL:请求资源路径
- HTTP 版本:HTTP/1.1、HTTP/2、HTTP/3
2. 请求头(Header)
一系列键值对,告诉服务器一些附加信息。
常见请求头:
- Host:域名
- User-Agent:浏览器 / 客户端信息
- Content-Type:请求体类型(application/json、form-data 等)
- Cookie:携带的 Cookie
- Connection:keep-alive 等
- Accept:可接受的响应类型
- Authorization:权限认证
3. 空行(非常重要)
必须有一个空行,作用是:
分隔请求头和请求体
哪怕没有请求体,这个空行也不能少,这是 HTTP 协议规定的。
4. 请求体(Body)
- GET 请求一般没有请求体
- POST、PUT 等才有
- 存放提交的数据:表单、JSON、文件等
完整示例(你一看就懂)
GET /user HTTP/1.1 // 请求行
Host: www.example.com // 请求头
User-Agent: Mozilla/5.0
Accept: */*
Connection: keep-alive
// 空行(必须有)
// GET 无请求体
POST /login HTTP/1.1 // 请求行
Host: www.example.com
Content-Type: application/json
Content-Length: 38
// 空行
{"username":"admin","password":"123456"} // 请求体
面试高频考点(背下来)
- GET 和 POST 的区别(必问)
- GET 有没有请求体?→ 协议没禁止,但浏览器和服务器一般都不支持 / 忽略,所以面试回答:GET 没有请求体
- 空行的作用:分隔请求头和请求体
- Content-Type 常见值:application/jsonapplication/x-www-form-urlencodedmultipart/form-data(文件上传)

查看11道真题和解析