关于REST架构

来源:互联网 发布:为什么c语言中提到函数 编辑:程序博客网 时间:2024/06/05 05:14

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

REST是设计风格而不是标准,通常基于使用HTTP,URI,和XML(标准通用标记语言下的一个子集)以及HTML(标准通用标记语言下的一个应用)这些现有的广泛流行的协议和标准。Web 服务的REST 架构方式,一般具备 6 个符合这一架构定义的特征。

  • 客户端-服务器(Client-Server)

客户端和服务器之间必须有明确的界线,REST架构下客户端与服务端有着明确的区别,客户端通过URI实现所有用户需要的资源与API。

  • 无状态(Stateless)

客户端发出的请求中必须包含所有必要的信息,REST要求状态要么被放入资源状态中,要么保存在客户端上。也就是说,在服务器端将不再保留任何客户端的信息,假设在Web通信过程中,服务器突然宕机,换上备用机继续通信,对于客户端来说,并不会发生任何异常。

  • 可缓存(Cacheable)

服务器发出的响应可以标记为可缓存或不可缓存,为了提高 REST 风格架构的网络性能,Roy 加入了“缓存”的约束。“缓存”不是一个新的概念,HTTP 协议提供机制,使得“客户端”可以“缓存”一些数据。在“服务器”返回的“响应”中,可以隐式或者显式的指明数据的“缓存”属性,这样,“客户端”可以在未来使用“缓存”下来的数据,减少“客户端”和“服务器”端的交互次数,从而达到提高网络性能的目的。

  • 接口统一(Uniform Interface)

客户端访问服务器资源时使用的协议必须一致,定义良好,且已经标准化。REST Web
服务最常使用的统一接口是HTTP 协议。

  • 系统分层(Layered System)

在客户端和服务器之间可以按需插入代理服务器、缓存或网关,以提高性能、稳定性和伸缩性。

  • 按需代码(Code on demand)

客户端可以选择从服务器上下载代码,在客户端的环境中执行。

0 0
原创粉丝点击