HTTP 請求方法詳解

HTTP 共定義了九種標準請求方法,但日常流量大多只用其中幾種。下表說明每種方法的作用、是否安全與冪等,以及成功呼叫時回傳的狀態碼。

更新日期:

方法用途安全?冪等?成功狀態
GETRetrieve a resourceYesYes200 OK
HEADRetrieve headers only, no bodyYesYes200 OK
POSTCreate a resource or trigger an actionNoNo201 Created
PUTReplace a resource entirelyNoYes200 OK / 204 No Content
PATCHApply a partial updateNoNo200 OK
DELETERemove a resourceNoYes200 OK / 204 No Content
OPTIONSCORS preflight; list allowed methodsYesYes204 / 200 OK
TRACEEcho the request back for diagnosticsYesYes200 OK
CONNECTOpen a tunnel, e.g. HTTPS via a proxyNoNo200 OK

說明

常見問題

GET 和 POST 有什麼區別?
GET 只讀取資源、沒有副作用,可安全重複;參數放在 URL 裡。POST 用於建立資源或觸發動作,可能改變狀態,不應盲目重複提交。
「安全」的 HTTP 方法是什麼意思?
安全方法不會修改伺服器狀態,因此呼叫沒有風險。GET、HEAD、OPTIONS、TRACE 是安全的;POST、PUT、PATCH、DELETE 不安全。
PUT 和 PATCH 有什麼區別?
PUT 用送出的整個內容替換資源;PATCH 只對部分欄位做局部修改。PUT 冪等,重複呼叫結果相同;PATCH 一般不冪等。
HEAD 方法有什麼用?
HEAD 與 GET 類似,但不回傳回應本文。適合用來檢查資源是否存在、大小或回應標頭,而不必下載完整內容。