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 方法:通常不携带请求体(部分浏览器或服务器可能不支持)。
posted @ 2025-03-26 16:09  汤龙祥  阅读(64)  评论(0)    收藏  举报