HTTP1: Request Methods

Author: Xu FC

Method = token,大小写敏感。

标准 Methods


Method Description
GET 获取目标资源
HEAD 应答中的头部与 GET,但应答中不带 body
POST 指定资源处理请求中的 payload
PUT 请求中的 payload 替换指定资源
DELETE 删除指定资源
OPTIONS 获取目标资源所支持的 method
CONNECT Establish a tunnel to the server identified by the target resource.
TRACE 使源服务器在应答 body 中原样返回请求

RFC: https://tools.ietf.org/html/rfc7231

Methods 分类


  • Safe Methods
    对资源的访问权限是 read-only 的请求 method,被归类为 safe methods,例如 GET, HEAD, OPTIONS, TRACE。
  • Idempotent Methods
    多次请求与一次请求所得到的结果相同,被归类为 idempotent method,例如 PUT, DELETE 和 safe methods。
  • Cacheable Methods
    应答允许缓存的methods,例如 GET, HEAD, POST (大多数实现只支持GET 和 HEAD)。
  • 扩展 methods: HTTP 支持 method 扩展,详细请见https://tools.ietf.org/html/rfc7231#section-8.1

GET


  • 标准的 GET 请求将获取源服务器上指定资源的副本,即应答中的body,但 GET 请求并不仅限于此,很多实现中, GET 请求也用于传输数据查询数据库记录等。GET 请求中不带有 body, 但 RFC 中并没有强制 GET 请求不能带有 body。
GET / HTTP/1.1
Host: 172.16.77.99

HTTP/1.1 200 OK
Date: Fri, 23 Mar 2018 11:50:14 GMT
Server: Apache/2.2.14 (Win32)
Set-cookie: t=1521805814119777
test: t=1521805814119777
Content-Length: 587
Content-Type: text/html;charset=UTF-8


...

HEAD


  • 应答中的头部与 GET 相同,但应答中不带 body,常用于确认资源的有效性、可访问性、最近是否有修改。
  • HEAD 请求中不带有 body, 但 RFC 中并未强制要求不带body。
HEAD / HTTP/1.1
Host: aaa

HTTP/1.1 200 OK
Date: Fri, 23 Mar 2018 11:52:39 GMT
Server: Apache/2.2.14 (Win32)
Set-cookie: t=1521805959699233
test: t=1521805959699233
Content-Type: text/html;charset=UTF-8

HEAD / HTTP/1.1
Host: aaa
Range: bytes=-10

HTTP/1.1 206 Partial Content
Date: Tue, 29 May 2018 18:28:03 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Sat, 20 Nov 2004 07:16:26 GMT
ETag: "100000000f6f7-2c-3e94b66c2e680"
Accept-Ranges: bytes
Content-Length: 10
Content-Range: bytes 34-43/44
Content-Type: text/html

POST


待补充

PUT


待补充

DETETE


待补充

OPTIONS


  • 获取目标资源所支持的 methods,如果 URI 为 * ,则返回的 methods 为服务器支持的 methods,如果不是 * , 则返回的 methods 为该资源支持的 methods。
    OPTIONS 请求不带 body。
  • Allow:应答中的header,列出指定资源所支持的method
OPTIONS /WebGoat/login.mvc HTTP/1.1
Host: 179.1.1.63:8061

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
Content-Length: 0
Date: Fri, 23 Mar 2018 18:39:50 GMT

CONNECT


待补充

TRACE


  • 使源服务器在应答 body 中原样返回请求,一般用于调试。
TRACE / HTTP/1.1
Host: 172.16.77.99

HTTP/1.1 200 OK
Date: Fri, 23 Mar 2018 11:58:11 GMT
Server: Apache/2.2.14 (Win32)
Transfer-Encoding: chunked
Content-Type: message/http

28
TRACE / HTTP/1.1
Host: 172.16.77.99


0

你可能感兴趣的:(HTTP1: Request Methods)