restful通俗理解

作者:手打丸子

链接:https://www.zhihu.com/question/28557115/answer/142289037

来源:知乎

著作权归作者所有,转载请联系作者获得授权。

restful是种接口设计风格,在分布式系统架构下特别重要。

rest-representation state transfer

你的接口必须有以下特性(以HTTP协议为例,当然符合rest的不止这一种):

1.可描述性(representation):你可以准确的描述你的接口;包括接口地址(uri)、操作(PUT/GET/POST/DELETE)、资源项等(不止这些,但就是这个意思);

2.有状态的(state):你的接口调用后会返回调用结果;400、500等返回状态,来统一标识这个接口的运行状态,并且状态需要符合规范;

3.可转移(transfer):你的调用可以转移到另外的服务器上;这就要求你的服务端不保存客户端状态;你在分布式状态下调用哪一台服务器都是一样的效果,这就要求你的服务端必须不能维护客户端请求的状态,比如你调用服务器A和服务器B都是一样结果,或者调用服务器A两次都会得到一样的结果;

反证补充:

1.可描述性:试想,你都无法准确描述你的接口,你上哪里调用它;

2.有状态的:试想,你的接口没个规范的状态返回调用结果,在那么多接口的情况下,你咋知道调用结果如何;

3.可转移:试想,你的服务器A保存了客户端甲的状态,但是服务器B没有;这时,客户端甲发请求给服务器A/B完全有可能得到不同的结果,而明明客户端甲发的请求是一样的,并且是同一接口;在分布式下,经常会做负载均衡之类的,用户甲发的请求被谁处理完全是随机的。

注:以上描述不严谨,仅为通俗易懂;可能理解有误,有不当之处请指出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,383评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,183评论 6 13
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,671评论 11 349
  • 实用英语:下载地址 评级:★★★ 第一眼应用的学习类最佳选择,首先无论是界面的简介和整个布局的UI,都能够让人第一...
    天空之南阅读 605评论 1 49
  • 异地恋最难受的就是我需要你的时候你不在我身边,女朋友刚才更我说了这段话,我好害怕,害怕自己一个人难受的时候你不在我...
    远方有个等你的人阅读 275评论 0 0

友情链接更多精彩内容