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 类似,但不返回响应体。适合用来检查资源是否存在、大小或响应头,而不必下载完整内容。