RESTful(REST风格)是什么?(Java学习笔记)

RESTful(REST 风格)是一种当前比较流行的互联网软件架构模式,它充分并正确地利用 HTTP 协议的特性,为我们规定了一套统一的资源获取方式,以实现不同终端之间(客户端与服务端)的数据访问与交互。

REST

REST: Representation State Transfer 的缩写,中文意思就是:表现层资源表诉状态转移。

  1. Resource(资源)
    当我们把Web工程部署到服务器中,那么工程中的所有的内容都可以被称为这个服务中的资源。这些资源都有一个共同的特征:都可以通过一个URI(统一资源标识符)进行标识,任何对该资源的操作都不能改变其URI。想要访问这个资源,就得访问它的URI。
  2. Representation(资源的表诉)
    资源的表述指的是资源在某个特定时刻的状态的描述,即资源的具体表现形式,它可以有多种格式,例如 HTML、XML、JSON、纯文本、图片、视频、音频等等。通常情况下,服务端与客户端资源的表述所有使用的格式往往是不同的,例如在服务端资源可能是数据库中的一段纯文本、一个 XML 文件、或者是数据库中的一张表,而客户端则可能是表现为 HTML 页面、JSON、甚至是音频和视频。
  3. State Transfer(状态转移)
    所谓的资源状态转移,简单点说就是,客户端与服务端进行交互时,资源从一种表现形式转换到另一种表现形式的过程。但是 HTTP 协议是一种无状态协议,它是无法保存任何状态的,因此如果客户端想要获取服务器上的某个资源,就必须通过某种手段让资源在服务器端发生“状态转化”,而这种状态转化又是建立在应用的表现层(UI)上的。这就是“表现层资源状态转移”的含义。

REST 实际上描述的是服务器与客户端的一种交互形式,REST 本身并不是一个实用的概念,真正实用的是如何设计 RESTFul(REST 风格)的接口,即我们到底通过什么样的手段让资源在服务器端发生状态转移。

RESTFul

在传统的项目开发中,我们通常都会将操作资源的动词写进 URL 中,而这些动词通常都是我们自行定义的,并没有一个统一的规范。RESTFul 提倡我们使用统一的风格来设计 URL,其规则如下。

  1. URL 只用来标识和定位资源,不得包含任何与操作相关的动词。例如访问与用户(user)相关的资源时,其 URL 可以定义成以下形式。
http://localhost:8080/biancheng/user
  1. 当请求中需要携带参数时,RESTFul 允许我们将参数通过斜杠(/)拼接到 URL 中,将其作为 URL 的一部分发送到服务器中,而不再像以前一样使用问号(?)拼接键值对的方式来携带参数,示例如下。
http://localhost:8080/biancheng/user/1

注:我们在 URL 的末尾通过 “/1”的形式传递了一个取值为 1 的参数。

  1. HTTP 协议中有四个表示操作方式的动词:GET、POST、PUT 和 DELETE,它们分别对应了四种与资源相关的基本操作: GET 用来获取资源, POST 用来新建资源, PUT 用来更新资源, DELETE 用来删除资源。客户端通过这四个动词,即可实现对服务器端资源状态转移的描述。
资源操作传统方式 URLRESTFul URL HTTP请求方式
获取资源(SELECT)http://localhost:8080/biancheng/getUserById?id=1http://localhost:8080/biancheng/user/1GET
保存或新增资源(INSERT)http://localhost:8080/biancheng/saveUserhttp://localhost:8080/biancheng/userPOST
修改或更新资源(UPDATE)http://localhost:8080/biancheng/updateUserhttp://localhost:8080/biancheng/userPUT
删除资源(DELETE)http://localhost:8080/biancheng/deleteUser?id=1http://localhost:8080/biancheng/user/1DELETE

学习原文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值