Skip to content

Latest commit

 

History

History
24 lines (16 loc) · 1.91 KB

RESTful.md

File metadata and controls

24 lines (16 loc) · 1.91 KB

REST

HTTP 是一种应用层协议,能从 HTTP 基础设施中获取多少收益,主要取决于把它用做应用层协议用得有多好。

HTTP 实际上是为 REST 而生的,它能够表达状态和状态转移,者就是它位于应用层而非传输层的原因。

使用统一接口

如何保持交互的可见性

可见性是 HTTP 的一个核心特征。可见性是“一个组件能够对其他两个组件之间的交互进行监视或仲裁的能了”。当协议是可见的时,缓存、代理、防火墙等组件就可以监视甚至参与其中。

HTTP 通过一下途径来实现可见性:

  • HTTP 的交互是无状态的,任何 HTTP 中介都可以推断出给定请求和响应的意义,而无须关联过去或将来的请求和响应。

  • HTTP 使用一个统一接口,包括有 OPTIONSGETHEADPOSTDELETETRACE 方法。接口中的每一个方法操作一个且仅有一个资源。每个方法的语法和含义不会因应用程序或资源的不同而发生改变。

  • HTTP 使用一种与 MIME 类似的信封格式进行表述编码。这种格式明确区分标头和内容。标头时可见的,除了创建、处理消息的部分,软件的其他部分都可以不用关心消息的内容。

对于 RESTful web 服务,主要目标是尽可能保持可见性。保持可见性非常简单,使用 HTTP 方法时,其语义要与 HTTP 所规定的语义保持一致,并添加适当的标头来描述请求和响应。

HTTP 方法的安全性和幂等性

安全性

安全性并不意味着服务器每次都必须返回同一结果。它只是表明客户端可以发送请求,并指导它不会改变资源的状态。

幂等性

幂等性保证客户的发起多次请求获取到的结果和一次请求获取到的结果一致。