了解所有的 HTTP/1.1 的方法及用途

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

...
  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

New File

响应 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协议的站点。

你可能感兴趣的:(工具)