HTTP
是一种应用层协议,能从 HTTP
基础设施中获取多少收益,主要取决于把它用做应用层协议用得有多好。
HTTP
实际上是为 REST
而生的,它能够表达状态和状态转移,者就是它位于应用层而非传输层的原因。
可见性是 HTTP
的一个核心特征。可见性是“一个组件能够对其他两个组件之间的交互进行监视或仲裁的能了”。当协议是可见的时,缓存、代理、防火墙等组件就可以监视甚至参与其中。
HTTP
通过一下途径来实现可见性:
-
HTTP
的交互是无状态的,任何HTTP
中介都可以推断出给定请求和响应的意义,而无须关联过去或将来的请求和响应。 -
HTTP
使用一个统一接口,包括有OPTIONS
,GET
,HEAD
,POST
,DELETE
和TRACE
方法。接口中的每一个方法操作一个且仅有一个资源。每个方法的语法和含义不会因应用程序或资源的不同而发生改变。 -
HTTP
使用一种与MIME
类似的信封格式进行表述编码。这种格式明确区分标头和内容。标头时可见的,除了创建、处理消息的部分,软件的其他部分都可以不用关心消息的内容。
对于 RESTful web
服务,主要目标是尽可能保持可见性。保持可见性非常简单,使用 HTTP
方法时,其语义要与 HTTP
所规定的语义保持一致,并添加适当的标头来描述请求和响应。
安全性并不意味着服务器每次都必须返回同一结果。它只是表明客户端可以发送请求,并指导它不会改变资源的状态。
幂等性保证客户的发起多次请求获取到的结果和一次请求获取到的结果一致。