在 HTTP 请求报文 中,方法(Method) 是用来说明客户端希望对服务器资源执行的操作。它出现在 HTTP 报文的第一行,称为 请求行,格式如下:
METHOD Request-URI HTTP-Version
例如:
GET /index.html HTTP/1.1
方法名 | 含义 | 是否有请求体 | 是否幂等 | 常见用途 |
---|---|---|---|---|
GET |
获取资源 | 否 | ✅ 是 | 浏览网页、获取数据 |
POST |
提交资源(如表单) | ✅ 是 | ❌ 否 | 登录、注册、上传数据 |
PUT |
更新资源(整体替换) | ✅ 是 | ✅ 是 | 修改整个用户信息等 |
DELETE |
删除资源 | 否(可选体) | ✅ 是 | 删除记录、数据等 |
HEAD |
获取响应头,不返回内容体 | 否 | ✅ 是 | 检查资源是否存在 |
OPTIONS |
询问支持的方法 | 否 | ✅ 是 | CORS 预检、功能探测 |
PATCH |
局部更新资源 | ✅ 是 | ✅ 有争议(大多数认为是) | 局部修改用户资料等 |
TRACE |
回显请求报文 | 否 | ✅ 是 | 调试用,不常见 |
CONNECT |
用于建立隧道(如 HTTPS) | 否 | ❌ 否 | HTTPS代理 |
“幂等(Idempotent)”
幂等操作:无论执行一次还是执行多次,其对系统的最终影响是一样的。
你可以把“幂等”理解为:
GET
用途:获取资源。
特点:
POST
用途:向服务器提交数据。
特点:
PUT
用途:更新(替换)指定资源。
特点:
DELETE
用途:删除资源。
特点:
HEAD
与 GET 类似,但不返回响应体,只返回响应头。
常用于:
ETag
)OPTIONS
返回响应头如:
Allow: GET, POST, OPTIONS
PATCH
方法 | 幂等性 |
---|---|
GET | ✅ 幂等 |
PUT | ✅ 幂等 |
DELETE | ✅ 幂等 |
POST | ❌ 非幂等 |
PATCH | ✅ 通常认为是 |
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
测试,我可以继续讲解。需要吗?