All of the HTTP/1.1 方法

本文深入解析HTTP协议中的GET、POST、PUT、HEAD、DELETE、OPTIONS、TRACE及CONNECT等方法的使用场景与语义区别,帮助读者理解如何正确选择HTTP方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http/1.1 中可使用的方法,源自《图解HTTP》

GET:获取资源

用来请求服务器中已被URI识别的资源。经服务器解析后返回相应内容。若请求的是文本即返回文本的内容。

类型内容
请求GET /index.html HTTP/1.1
Host: www.hackr.jp
If-Modified-Since: Mon, Jun 22 2020 23:58:43 GMT
响应HTTP/1.1 200 OK
Date: Mon, Jun 22 2020 23:58:43 GMT
Content-Length: 232
Content-Type: text/html

<html>...
  1. 返回index.html页面资源。
  2. 且仅返回2020年6月22号23点58分43秒之后更新过的index.html页面资源
  3. 若未更新返回304 Not Modified

304状态码即是我们通常所说的协商缓存会出现的状态码,我们通常在HTTP请求报文中的可选首部字段If-Modified-Since来指定某一日期。仅当资源修改日期超过该指定日期时才返回。

POST:传输实体主体

POST方法用来传输实体住体,虽然GET也可以通过query来传输内容实体,但是主要目的还是为了获取资源。POST用来传输内容主体并获取服务器处理后的结果。除了本身安全性和传输内容长度的不同,主要是语义上的差别。

类型内容
请求POST /submit HTTP/1.1
Host: foo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 13
响应返回submit处理数据后的结果

PUT:传输文件

POST方法用来传输文件。

类型内容
请求PUT /new.html HTTP/1.1
Host: example.com
Content-type: text/html
Content-length: 16

<p>New File</p>
响应HTTP/1.1 201 Created
Content-Location: /new.html
响应HTTP/1.1 204 No Content
Content-Location: /existing.html
  1. 返回状态码204 No Content 表示该html已存在于服务器上
  2. 返回状态码200 OK 表示该html已存在于服务器上,并且完成了更新。
  3. 返回状态码201 Created表示目标资源不存在,已经通过PUT创建了。

HEAD:用于获取响应报文头部

HEAD用于获取响应报文头部,且同GET方法获取的报文头部一致,但是不反悔响应报文主体。主要用于请求大文件时,通过获取头部得悉文件大小,再决定是否进行下载。

类型内容
请求HEAD /index.html HTTP/1.1
Host: example.com
响应HTTP/1.1 200 OK
Date: Mon, Jun 22 2020 23:58:43 GMT
Content-Length: 232
Content-Type: text/html

DELETE:用于删除文件

DELETE用于删除服务器文件,同PUT相反。

类型内容
请求DELETE /new.html HTTP/1.1
Host: example.com
响应HTTP/1.1 204 No Content
  1. 状态码 202 (Accepted) 表示请求的操作可能会成功执行,但是尚未开始执行。
  2. 状态码 204 (No Content) 表示操作已执行,但是无进一步的相关信息(表示html不存在,或者已从该服务器删除过了)。
  3. 状态码 200 (OK) 表示操作已执行,并且响应中提供了相关状态的描述信息。

OPTIONS:询问支持的方法

OPTIONS用于查询帧对请求URI指定资源的支持的方法。

类型内容
请求1. OPTIONS /index.html HTTP/1.1
2. OPTIONS * HTTP/1.1
响应HTTP/1.1 200 OK
Allow: OPTIONS, GET, HEAD, POST
  1. *表示对整个服务器支持的方法进行查询
  2. CORS进行预检测请求,确定服务器是否支持实际请求的方法。
    1. 预检请求报文中的 Access-Control-Request-Method 首部字段告知服务器实际请求所使用的 HTTP 方法;
    2. Access-Control-Request-Headers 首部字段告知服务器实际请求所携带的自定义首部字段。
    3. 服务器所返回的 Access-Control-Allow-Methods 首部字段将所有允许的请求方法告知客户端。

TRACE:追踪路径

可以让web服务器端将之前的请求通信返回给客户端。发送请求设置Max-Forwards首部字段为5,每记过一个服务器,该数字减一。最终服务器将返回所接收到的请求报文。通常用来debug看请求报文是否正常发送,或被篡改。

Connect:要求用隧道协议链接代理

可以开通客户端到请求资源之间的通道,可理解为实现了正向代理功能,通过代理服务器跟目标服务器建立链接。且能访问采用ssl协议的站点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Eighteen Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值