昆明网站建设推荐wordpress临时关闭站点
在 HTTP 请求报文 中,方法(Method) 是用来说明客户端希望对服务器资源执行的操作。它出现在 HTTP 报文的第一行,称为 请求行,格式如下:
METHOD  Request-URI  HTTP-Version
 
例如:
GET /index.html HTTP/1.1
 
✅ 常见 HTTP 方法详解
| 方法名 | 含义 | 是否有请求体 | 是否幂等 | 常见用途 | 
|---|---|---|---|---|
GET | 获取资源 | 否 | ✅ 是 | 浏览网页、获取数据 | 
POST | 提交资源(如表单) | ✅ 是 | ❌ 否 | 登录、注册、上传数据 | 
PUT | 更新资源(整体替换) | ✅ 是 | ✅ 是 | 修改整个用户信息等 | 
DELETE | 删除资源 | 否(可选体) | ✅ 是 | 删除记录、数据等 | 
HEAD | 获取响应头,不返回内容体 | 否 | ✅ 是 | 检查资源是否存在 | 
OPTIONS | 询问支持的方法 | 否 | ✅ 是 | CORS 预检、功能探测 | 
PATCH | 局部更新资源 | ✅ 是 | ✅ 有争议(大多数认为是) | 局部修改用户资料等 | 
TRACE | 回显请求报文 | 否 | ✅ 是 | 调试用,不常见 | 
CONNECT | 用于建立隧道(如 HTTPS) | 否 | ❌ 否 | HTTPS代理 | 
“幂等(Idempotent)”
✅ 一句话定义:
幂等操作:无论执行一次还是执行多次,其对系统的最终影响是一样的。
🎯 通俗解释
你可以把“幂等”理解为:
- “我重复点多少次这个按钮,最终结果都一样。”
 
🔍 方法详解
1. GET
 
-  
用途:获取资源。
 -  
特点:
- 参数通过 URL 传递(?key=value)
 - 不应产生副作用(不修改资源)
 - 不能带请求体
 
 
2. POST
 
-  
用途:向服务器提交数据。
 -  
特点:
- 请求体中包含数据(如表单、JSON)
 - 常用于登录、注册、上传
 - 不幂等,连续发送多次会产生多次影响
 
 
3. PUT
 
-  
用途:更新(替换)指定资源。
 -  
特点:
- 是幂等的:多次调用效果一样
 - 请求体中包含完整的新资源
 - 常用于 REST API 中修改资源
 
 
4. DELETE
 
-  
用途:删除资源。
 -  
特点:
- 通常是幂等的:删除一次和多次一样
 - 不一定有请求体
 
 
5. HEAD
 
-  
与 GET 类似,但不返回响应体,只返回响应头。
 -  
常用于:
- 测试资源是否存在
 - 检查资源是否被修改(配合 
ETag) 
 
6. OPTIONS
 
- 查看服务器允许的 HTTP 方法。
 - 用于跨域请求的预检请求(preflight)
 
返回响应头如:
Allow: GET, POST, OPTIONS
 
7. PATCH
 
- 与 PUT 不同,它是部分更新资源。
 - 用于只修改一个字段或局部数据。
 - 示例:只更新用户名,而不提交整个用户对象。
 
🚨 幂等性说明
- 幂等:调用一次与多次效果一致(无副作用)
 - 非幂等:多次调用可能产生不同影响
 
| 方法 | 幂等性 | 
|---|---|
| GET | ✅ 幂等 | 
| PUT | ✅ 幂等 | 
| DELETE | ✅ 幂等 | 
| POST | ❌ 非幂等 | 
| PATCH | ✅ 通常认为是 | 
🧾 示例:完整 HTTP 请求报文
POST /api/login HTTP/1.1
Host: www.example.com
Content-Type: application/json
Content-Length: 38{"username": "admin","password": "123456"
}
 
如你还想看某个方法的具体交互过程(如 OPTIONS 的跨域示例、PATCH 的 JSON格式)或使用工具如 curl、Postman 测试,我可以继续讲解。需要吗?
