今天面试还问了除了 get 和 post 方法还有其他请求方法吗,一个都不知道,这里记录下。
🌐 常见 HTTP 请求方法一览
方法 | 作用描述 | 是否幂等 | 是否常用 |
---|---|---|---|
GET | 获取资源,参数一般拼接在 URL 中 | ✅ 是 | ✅ 常用 |
POST | 创建资源 / 提交数据,参数放在请求体中 | ❌ 否 | ✅ 常用 |
PUT | 更新资源(整个资源替换) | ✅ 是 | ✅ REST常用 |
PATCH | 部分更新资源(仅修改部分字段) | ❌ 否 | ✅ REST常用 |
DELETE | 删除资源 | ✅ 是 | ✅ REST常用 |
HEAD | 类似 GET,但不返回响应体(仅返回响应头),用于检查资源存在 | ✅ 是 | ⬅️ 一般用于探测 |
OPTIONS | 获取当前 URL 所支持的方法,通常用于跨域请求预检(CORS) | ✅ 是 | ✅ CORS 预检 |
TRACE | 回显请求内容,用于测试和诊断 | ✅ 是 | ❌ 极少用 |
CONNECT | 用于代理通信建立隧道,常见于 HTTPS 代理连接 | ❌ 否 | ❌ 少用 |
🧠 小贴士:哪些方法是幂等的?
幂等(Idempotent)意思是:无论你调用多少次,结果都一样。
-
✅
GET
,PUT
,DELETE
,HEAD
,OPTIONS
是幂等的 -
❌
POST
,PATCH
,CONNECT
是非幂等的
🌍 RESTful 风格推荐
在 RESTful 接口设计中,推荐遵循如下规范:
操作 | URL 示例 | 方法 |
---|---|---|
获取用户 | /users/1 | GET |
新增用户 | /users | POST |
更新用户 | /users/1 | PUT |
修改用户名 | /users/1/name | PATCH |
删除用户 | /users/1 | DELETE |
📦 面试中常被问到的问题:
-
GET 和 POST 有什么区别?
- 参数传递方式、是否缓存、幂等性、是否可被书签保存等差异。
-
PUT 和 PATCH 有什么不同?
- PUT 是整体更新,PATCH 是部分字段更新。
-
OPTIONS 有什么作用?
- 主要用于跨域请求的预检(Preflight),浏览器会自动发送 OPTIONS 请求。
-
POST 是不是幂等的?
- ❌ 不是。因为可能每次提交都会创建一个新资源(如订单、记录等)。