REST简析:如何通俗的理解REST以及RESTful

REST简介

本文旨在让读者对REST有一个简明清晰的了解。

REST全称为 REpresentational State Transfer,更好理解一点是 Resource Representational State Transfer,即资源在网络中以某种表现形式进行转移。

Resource:资源,即网络中传输的数据;

Representational:表达形式,即数据传输形式,比如有JSON、XML等

State Transfer:状态转换,对数据进行操作,如增删查改等。

REST并不是一个框架,而是一种前后端交互的规范或约定,是一种软件架构风格。使用REST风格的系统称为RESTful系统, RESTful系统简化了前后端的通信,实现了前后端分离等特性。

前后端分离


在互联网页“上古”时代,前后端是融合在一起的,但随着时代发展,互联网也跳脱出了网页的束缚,实现了面向多类客户端的发展,比如说我们常用到的微信、微博等APP社区,不再需要显示的前端,只需要RESTful提供一套统一的接口,便可面向web、Android、iOS提供服务,因此REST的架构风格更容易受到现代互联网的青睐。

在RESTful系统中,通过约定RESTful API,前后端可以做到独立开发,并且可以在保证接口不变的情况下任意替换前后端 的实现语言,比如一套服务端接口可以提供给Web、小程序、Android/iOS客户端同时使用, 或者服务端实现也可以换用不同的框架甚至语言。

一般RESTful系统有静态的前端资源和服务器,部署上会单独部署前端服务(Nginx或CDN),使用反向代理将前端请求转发给后端服务, 由于无状态的特性,后端服务可以横向扩展,在流量高峰期可以通过扩容后端服务器以服务更多的请求。

 

前后端交互 


在RESTful系统中,客户端(一般指浏览器)通过发送HTTP请求来获取或更改资源,服务端响应相关请求并返回结果数据,这便是一个完整的前后端交互过程。

一个HTTP请求包括以下几个方面:

  • HTTP method,用来标识对资源(数据)的操作
    • GET - 获取单个资源或一批资源
    • POST - 创建新的资源
    • PUT - 更新资源
    • DELETE - 删除资源
  • HTTP header,用来传递额外的信息,如
    • accept: application/json 接受的数据类型
    • x-csrftoken CSRF头
  • Path,用来标识需要操作的资源,如

一个相应的HTTP响应包括如下几个方面:

  • Content-Type: 返回的数据类型,如application/json
  • Status Code: HTTP状态码,常用的状态码如下:
    • 200 - 成功
    • 201 - 成功创建了新资源
    • 204 - 成功,无返回体
    • 400 - 客户端请求错误
    • 401 - 未认证
    • 403 - 未授权
    • 404 - 未找到对应的资源
    • 405 - 不允许的HTTP method
    • 50x - 服务端错误
  • Response Body:返回的数据,如JSON文本

所以,总结一下就是下面这几句话(知乎:徐磊),简明扼要!

看Url就知道要什么

http method就知道干什么

http status code就知道结果如何

内容引用来自:

DataWhale开源项目whale-web :datawhalechina/whale-web (github.com) 

  知乎覃超、知乎徐磊: 怎样用通俗的语言解释REST,以及RESTful?

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值