HTTP请求方法
-
GET:
-
作用:用于请求访问已经被URI(统一资源标识符)识别的资源。客户端通过GET请求从服务器接收数据。它将参数附加在URL中,因此不适合传输大量数据或敏感信息。
-
特点:请求参数可见,请求结果可缓存,幂等(多次请求具有相同副作用)。
-
传参格式:GET请求通常通过URL的查询字符串(Query String Parameters)传递参数。参数以
key=value
的形式追加到URL后面,多个参数之间使用&
分隔。 -
例子
GET /search?key1=value1&key2=value2 HTTP/1.1 Host: example.com
-
-
POST:
-
作用:用于向服务器提交数据,请求服务器进行处理(如提交表单、上传文件)。数据放置在请求正文中,通常用于创建新的资源或更新现有资源。
-
特点:请求参数不在URL中,适合传输大量数据,非幂等(多次请求可能会产生不同结果)。
-
传参格式
:POST请求的参数可以放在请求体中,根据Content-Type的不同,有不同的格式。
-
x-www-form-urlencoded:类似于GET请求的查询字符串格式,但位于请求体中。
-
multipart/form-data:用于文件上传,数据以多部分(boundary分隔)形式组织。
-
application/json:参数以JSON对象的形式放在请求体中。
-
-
例子(application/json):
POST /api/data HTTP/1.1 Host: example.com Content-Type: application/json {"key1":"value1", "key2":"value2"}
-
-
PUT:
-
作用:用于替换服务器上的某个现有资源的全部内容,要求客户端提供完整的资源数据。与POST相比,PUT是幂等的,多次请求具有相同效果。
-
特点:全量更新,幂等,请求正文包含完整资源数据。
-
传参格式:类似于POST,但通常是用来替换整个资源,参数同样可以放在请求体中,格式依据
Content-Type
决定。 -
例子(application/json):
PUT /api/item/123 HTTP/1.1 Host: example.com Content-Type: application/json {"name":"newName", "status":"active"}
-
-
DELETE:
-
作用:请求服务器删除指定的资源。
-
特点:幂等,多次请求具有相同效果,即删除指定资源。
-
传参格式:DELETE请求通常不携带请求体,参数可以通过URL路径或查询字符串传递。
-
例子
DELETE /api/item/123?reason=obsolete HTTP/1.1 Host: example.com
-
-
HEAD:
-
作用:类似GET,但服务器仅返回HTTP头部信息,不返回消息体,常用于检查资源是否存在、获取资源元数据等。
-
特点:只获取头部信息,无响应体,幂等。
-
传参格式:HEAD请求不携带请求体,参数通过URL的查询字符串传递,但HEAD请求主要用于获取头部信息,不期望有响应体。
-
例子
HEAD /api/data?key1=value1 HTTP/1.1 Host: example.com
-
-
OPTIONS:
-
作用:用于请求服务器告知其支持的所有HTTP方法或请求头信息,常用于CORS(跨域资源共享)预检请求。
-
特点:用于获取服务器能力信息。
-
传参格式:OPTIONS请求也不携带请求体,参数同样通过查询字符串传递,用于获取服务器支持的HTTP方法。
-
例子
OPTIONS /api/data HTTP/1.1 Host: example.com
-
-
TRACE:
-
作用:请求服务器回送接收到的请求信息,主要用于测试或诊断,回显客户端发送的请求。
-
特点:用于诊断,不应用于生产环境。
-
传参格式:TRACE请求主要用于诊断,它会将接收到的请求数据原封不动地返回给客户端,因此通常不带请求体,参数可以通过URL的查询字符串传递。
-
例子
TRACE /test-path?key=value HTTP/1.1 Host: example.com
-
-
CONNECT:
-
作用:在与代理服务器通信时使用,建立一个到远程服务器的TCP连接通道,通常用于SSL隧道代理。
-
特点:用于代理隧道,如HTTPS连接。
-
传参格式:CONNECT方法用于在与代理服务器通信时建立一个到目标服务器的TCP连接通道,特别是用于SSL/TLS隧道(比如HTTPS连接)。它通常不携带常规的请求参数,而是直接在请求行中指定目标主机和端口。
-
例子
CONNECT www.example.com:443 HTTP/1.1 Host: www.example.com:443
-
-
PATCH:
-
作用:用于对资源的部分属性进行更新,请求正文包含要更改的差异部分。
-
特点:部分更新,非幂等。
-
传参格式:PATCH用于更新资源的部分属性,参数通常放在请求体中,格式依据
Content-Type
,常见为application/json
或application/merge-patch+json
。 -
例子(application/json):
PATCH /api/item/123 HTTP/1.1 Host: example.com Content-Type: application/json {"status":"inactive"}
-