`

理解本真的REST架构风格

 
阅读更多

REST是Web自身的架构风格,它是为运行在互联网环境 的 分布式 超媒体系统量身定制的。互联网环境与企业内网环境有非常大的差别,最主要的差别是两个方面:

  • 可伸缩性需求无法控制:并发访问量可能会暴涨,也可能会暴跌。

  • 安全性需求无法控制:无法控制客户端发来的请求的格式,很可能会是恶意的请求。

而所谓的“超媒体系统”,即,使用了超文本的系统。可以把“超媒体”理解为超文本+媒体内容。

REST是HTTP/1.1协议等Web规范的设计指导原则,HTTP/1.1协议正是为实现REST风格的架构而设计的。

 

要深入理解REST,需要理解REST的五个关键词:

  1. 资源(Resource)
  2. 资源的表述(Representation)
  3. 状态转移(State Transfer)
  4. 统一接口(Uniform Interface)
  5. 超文本驱动(Hypertext Driven)

 

REST与RPC的差别在于:

  • REST支持抽象的工具是资源,RPC支持抽象的工具是过程。REST风格的架构建模是以名词为核心的,RPC风格的架构建模是以动词为核心的。简单类比一下,REST是面向对象编程,RPC则是面向过程编程。

  • RPC中没有统一接口的概念。不同的API,接口设计风格可以完全不同。RPC也不支持操作语义对于中间组件的可见性。

  • RPC中没有使用超文本,响应的内容中只包含消息本身。REST使用了超文本,可以实现更大粒度的交互,交互的效率比RPC更高。

  • REST支持数据流和管道,RPC不支持数据流和管道。

  • 因为使用了平台中立的消息,RPC风格的耦合度比DO风格要小一些,但是RPC风格也常常会带来客户端与服务器端的紧耦合。支持统一接口+超文本驱动的REST风格,可以达到最小的耦合度。

 

参考:

理解本真的REST架构风格

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics