请求方法

1 GET 请求指定的页面信息,并返回实体主体。
2 HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。
5 DELETE 请求服务器删除指定的页面。
6 CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
7 OPTIONS 允许客户端查看服务器的性能。
8 TRACE 回显服务器收到的请求,主要用于测试或诊断。
9 PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。

URL:统一资源定位符
URI:统一资源标识符 <方案名称>:<分层部分>[?<查询参数>][#片段]
URN: 统一资源名称
URL + URN = URI

URI示例: http://sausheong:password@www.example.com/docs/file?name=sausheong&location=singapore#summary
这个URI 使用的是 http 方案

安全的请求方法

如果一个HTTP方法只要求服务器提供信息而不会对服务器的状态做任何修改,那么这个方法就是安全的。
GET, HEAD, OPTIONS, TRACE都是安全的请求方法

幂等的请求方法

从逻辑学的角度理解

p = p ^ p

从数学的角度理解

f(f(x)) = f(x)

简单来说,幂等这个概念指的是多次同样的操作而不改变结果。幂等的概念广泛运用于各种分布式架构,由于网络延迟等原因,一个请求可能要多次重试,遇到这种情况就需要保证这个对应的请求接口是幂等的。另外还有类似银行转账的情形,就算多次请求也要保证对账户只做一次操作。

安全的请求方法不会修改服务器的状态,他们天生就是幂等的
PUT, DELETE虽然不安全,但也是幂等的,
POST方法既不安全也不是幂等。