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>... |
- 返回index.html页面资源。
- 且仅返回2020年6月22号23点58分43秒之后更新过的index.html页面资源
- 若未更新返回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 |
- 返回状态码
204 No Content
表示该html已存在于服务器上 - 返回状态码
200 OK
表示该html已存在于服务器上,并且完成了更新。 - 返回状态码
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 |
- 状态码 202 (Accepted) 表示请求的操作可能会成功执行,但是尚未开始执行。
- 状态码 204 (No Content) 表示操作已执行,但是无进一步的相关信息(表示html不存在,或者已从该服务器删除过了)。
- 状态码 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 |
- *表示对整个服务器支持的方法进行查询
- CORS进行预检测请求,确定服务器是否支持实际请求的方法。
- 预检请求报文中的
Access-Control-Request-Method
首部字段告知服务器实际请求所使用的 HTTP 方法; Access-Control-Request-Headers
首部字段告知服务器实际请求所携带的自定义首部字段。- 服务器所返回的
Access-Control-Allow-Methods
首部字段将所有允许的请求方法告知客户端。
- 预检请求报文中的
TRACE:追踪路径
可以让web服务器端将之前的请求通信返回给客户端。发送请求设置Max-Forwards首部字段为5,每记过一个服务器,该数字减一。最终服务器将返回所接收到的请求报文。通常用来debug看请求报文是否正常发送,或被篡改。
Connect:要求用隧道协议链接代理
可以开通客户端到请求资源之间的通道,可理解为实现了正向代理功能,通过代理服务器跟目标服务器建立链接。且能访问采用ssl协议的站点。