在资源中中一切都被认为是资源,每个资源有对应的Url标识。处理资源使用Get,Post,Put,Delete等http方法操作实现创建,读取,修改,删除等操作。客户端通过四个Http动词,对服务器端资源进行操作,实现“表现层状态转换”表现是指资源的表现。客户端和服务器之间,传递这种资源的某种表现层;无状态,每个请求是独立的,,从客户端的每个请求都必须包含所有的必须信息
Http语义协义
Http定义了8种不同的类型消息,在RESTful中常用到的有以下几种:
POST 基于给定的表述信息,在当前资源的下一级创建新的资源。
服务器对POST请求最常见的响应码是201(创建),告之客户端资源创建成功;或者202(接受),这表示服务打算按照提供的表述信息来创建一个资源,但是现在还没有真正的创建完成。
DELETE 销毁一个资源。
服务器返回的响应码是204(无内容),表示删除成功。如果试图获取一个不存在的资源,服务器会返回错误的响应码404(当客户端想要删除一个资源时,可以发送一个DELETE请求。未找到)。
DELETE请求有一个重要的属性:它是幂等的。所谓幂等,就是发送多次请求对资源状态的影响和发送一次请求的影响是一样的。
幂等性是一个很有用的特性,因为互联网不是一个可靠的网络,假设我们发送了一个DELETE请求,然后连接超时了,我们没有收到响应信息,所以我们无法知道资源是否被正确地删除了,但是我们可以利用DELETE请求的幂等性特性,再次发送DELETE请求并不断重试直到收到服务器响应为止。因为多次执行DELETE请求并不比只执行一次DELETE请求造成多的影响。
PUT 用给定的表述信息替换资源的当前状态。
客户端一般通过GET请求获取资源表述,然后进行进行修改,最后将修改后的表述作为PUT请求的负载数据发送回服务器,修改完成后,服务器返回200或204响应码。
PUT请求也是幂等的。
GET 获取资源的某个表述(一个资源可以有多个表述)。
客户端通过发送GET请求来获取某个URL所标识的资源表述。服务器以application / vnd.collection + json格式返回资源表述。GET请法语最常见的响应码是200(OK)。
GET被定义为安全的HTTP方法,这是因为向服务器发送一条或多条GET请求对资源的影响和没有发GET请求一样,不会对既有资源有作何影响。安全方法都是幂等的。
以上四个协议对应着数据库中的增(Insert)删(delete)改(update)查(select)
操作。
下面两个方法是客户端在分析研究API的时候经常使用到的(可以简单了解一下)
HEAD 获取服务器发送过来的头信息(不含资源表述信息)。
HEAD请求和GET请求一样,是安全方法,对HEAD请求最简单的理解就是轻量级的GET请求,因为服务器只返回了头信息,不需要返回资源表述信息。
用HEAD请求来代替GET请求,不会节约作何时间,但可以节省带宽的使用。
OPTIONS 获取此资源所能响应的HTTP方法列表。
一个OPTIONS请求的返回结果包含这个资源所支持的所有HTTP方法,如GET/PUT/DELETE/POST
等。