今天面試還問了除了 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 是不是冪等的?
- ? 不是。因為可能每次提交都會創建一個新資源(如訂單、記錄等)。