RESTFUL 不是一种协议,它是一种架构, 一种 Web Service 能够如果满足 REST 的几个条件, 通常就称这个系统是 Restful 的.
这里提到的条件包括:
- C/S结构 (这是Internet服务的一个基本特征)
- 无状态 (很熟悉吧,呵呵)
- 可以cache (想起了浏览器?)
- 分层系统 (想起了无数的架构?)
- 统一的接口 (如果这是可能的,程序员有福了, :D)
- code on demand(可选, 其实是一种扩展性的要求)
RPC与REST的区别
RPC是以动词为中心的, REST是以名词为中心的, 此处的 动词指的是一些方法, 名词是指资源.
你会发现,以动词为中心,意味着,当你要需要加入新功能时,你必须要添加更多的动词, 这时候服务器端需要实现 相应的动词(方法), 客户端需要知道这个新的动词并进行调用.
而以名词为中心, 假使我请求的是 hostname/friends/, 无论这个URI对应的服务怎么变化,客户端是无需 关注和更新的,而这种变化对客户端也是透明的.
如何选择?
建议 能够使用REST就尽量使用REST, 主要基于下面几个考虑:
- 扩展性
- 松耦合(意味着,不用强制要求客户端去更新相应的代码)
- 客户端实现语言无关
- 性能
- 安全性(例如HTTPS)
- https://blog.csdn.net/btqszl/article/details/62895328