http请求参数
一、http介绍
http工作特点:
1、无状态、2、支持c/s模式、3、无连接、4、灵活、5、简单快速
Cookie:
Cookie是通过客户端保持状态的解决方案。从定义上来说,Cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次尚服务器发送请求的时候都会带上这些特殊的信息
特点:存储在客户端
Session:
Session叫会话,主要是用来检查请求数据中的Cookie字段是否在服务器存在和是否合法.
特点:存储在服务端
Cookie和Session的联系:
由于HTTP协议是无状态,这个时候就需要有一个机制来告诉服务端本次操作用户是否登录,是哪个用户在执行的操作,那这套机制的实现就需要 Cookie和Session配合。
报文请求格式:
第一部分:请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本,请求类型为POST 要访问的资源为/ ,该行的最后一部分说明使用的是HTTP1.1版本。
第二部分:请求头部用来说明服务器要使用的附加信息。
第三部分:空行,空行是必须的。第四部分的请求数据为空,也必须有空行。
第四部分:请求数据也叫主体,可以添加任意的其他数据。

二、请求行
HTTP 请求行是 HTTP 请求的第一行,用于标识请求的基本信息,格式为:
格式:
<方法> <目标资源> <协议版本>
举例:
GET /index.html HTTP/1.1
请求方法:
| 方法 | 用途 | 参数位置 | 安全性 | 幂等性 | 请求体支持 | 缓存 |
|---|---|---|---|---|---|---|
| GET | 从服务器获取数据(查询操作) | 参数附加在 URL 后(?key=value) | 安全 | 幂等 | 不支持 | 可缓存 |
| POST | 向服务器提交数据(写入操作) | 参数放在 HTTP 请求体(Body)中 | 不安全 | 非幂等 | 支持 | 默认不缓存 |
| PUT | 替换资源(完整更新) | URL路径标识 + 请求体 | 不安全 | 幂等 | 支持 | 不可缓存 |
| PATCH | 部分更新资源 | URL路径标识 + 请求体 | 不安全 | 非幂等 | 支持 | 不可缓存 |
| DELETE | 删除资源 | URL路径标识(如 /res/123) | 不安全 | 幂等 | 支持(可选) | 不可缓存 |
| HEAD | 获取资源元数据(无响应体) | URL 查询参数 | 安全 | 幂等 | 不支持 | 可缓存 |
| OPTIONS | 获取服务器支持的请求方法或跨域配置 | URL路径或全局 | 安全 | 幂等 | 不支持 | 不可缓存 |
| TRACE | 回显客户端请求(用于调试) | URL路径 | 安全 | 幂等 | 不支持 | 不可缓存 |
| CONNECT | 建立隧道(用于代理转发 HTTPS) | 目标主机和端口 | 不安全 | 非幂等 | 支持 | 不可缓存 |
三、请求头
请求头(Request Headers)是 HTTP 请求中的元数据,位于请求行之后、空行之前,用于向服务器传递附加信息。
以下是常见 HTTP 请求头参数:
| 参数名称 | 描述 | 示例 |
|---|---|---|
| User-Agent | 客户端信息(浏览器、操作系统等) | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/114.0.5735.198 |
| Accept | 指定客户端可接收的内容类型 | Accept: text/html, application/json |
| Content-Type | 请求体的 MIME 类型 | Content-Type: application/x-www-form-urlencoded |
| Content-Length | 请求体的字节长度(POST/PUT 必需) | Content-Length: 348 |
| Host | 请求的目标主机和端口 | Host: www.example.com:8080 |
| Cookie | 客户端发送的 Cookie 值 | Cookie: sessionid=abc123; user=john |
| Authorization | 用于身份验证的证书信息 | Authorization: Basic dXNlcjpwYXNzd29yZA== |
| Referer | 请求来源页面的 URL | Referer: https://www.example.com/previous-page |
| Connection | 连接类型(如长连接) | Connection: Keep-Alive |
| Cache-Control | 缓存控制指令 | Cache-Control: max-age=3600 |
| Accept-Language | 客户端偏好的语言 | Accept-Language: en-US, zh-CN |
| Accept-Encoding | 客户端支持的压缩编码 | Accept-Encoding: gzip, deflate |
| X-Forwarded-For | 记录客户端真实 IP(代理或负载均衡场景下使用) | X-Forwarded-For: 203.0.113.1, 192.168.1.1 |
| Date | 请求发送的时间 | Date: Wed, 26 Mar 2025 12:34:56 GMT |
| If-Modified-Since | 资源修改时间匹配条件 | If-Modified-Since: Wed, 26 Mar 2025 00:00:00 GMT |
| Range | 请求资源的部分内容 | Range: bytes=0-999 |
| Pragma | 实现特定的指令(如禁用缓存) | Pragma: no-cache |
| TE | 传输编码偏好(如 chunked) | TE: trailers, chunked |
| Via | 代理服务器信息 | Via: 1.1 proxy.example.com (Apache/2.4.57) |
| Max-Forwards | 代理转发次数限制 | Max-Forwards: 5 |
四、空行
空行的作用:
- 分隔请求头与请求体:空行是 HTTP 请求头与请求体之间的唯一分隔符,必须存在(即使请求体为空)。
- 结束请求头:服务器通过空行判断请求头已读取完毕,开始处理请求体。
五、请求体
请求体的定义
- 请求体(RequestBody)是 HTTP 请求中携带的数据部分,位于空行之后。
- 适用场景:常用于 POST、PUT、PATCH 等需要提交数据的方法。
- GET 方法:通常不携带请求体(部分浏览器或服务器可能不支持)。

浙公网安备 33010602011771号