浅谈RESTful架构风格

RESTful

REST (representation state transfer)表述性状态转移。该架构主张服务端维护资源状态,客户端维护会话状态,消除服务端维护客户请求状态的开销,有利于服务器横向扩展和负载均衡。

REST使服务器处于无状态,及服务器仅仅管理资源的状态,会话的状态的需要客户端自己来维持。举个例子,比如我调用远程服务next操作(功能:当前书籍的下一章),这时服务器端必须存有我当前浏览信息,才能使得next操作返回预期的结果。服务器同时要为所有的用户维护这样的信息才能返回正确的下一章内容给相应的用户。
那么能不能我主动告诉服务器我在哪一章呢,这样不就可以使得服务器不必大规模维护这样信息?当前可以,这就是REST思想的核心,客户端这边告诉服务器期望的状态,服务器返回相应的状态即可。也就说服务器不关心具体的处理过程只关系最后的状态。所以上面的例子,客户端可以发送https://www.my.com/article/2,告诉服务器我期望第二页的内容。且慢!那如果客户端希望删除下一章的内容怎么办?按照REST架构风格,同样也是发送上述请求?那服务器如何知道客户端的具体操作意图来完成资源的状态转移呢?这就需要在请求头中添加约定的动作Code。比如HTTP协议中的GET,POST,PUT,DELETE语义。其中GET对应的是查询动作;POST对应的是增加动作;PUT对应的是更新操作;DELETE对应的删除操作。
有了期望的资源状态和操作,就可以使得服务器处于无状态,以满足高并发和动态均衡的需求。

应用

通过SpringCloud Eureka注册中心,服务器可以进行服务注册、续约和下线;客户端可以获取调用方的服务信息。RestTemplate支持JSON格式和HTTP动作语义,给于了REST架构完美支持。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值