ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

大名鼎鼎的Restful,你到底知道多少?

2021-10-25 17:31:43  阅读:161  来源: 互联网

标签:架构 请求 到底 RESTful URI 大名鼎鼎 服务器 Restful 资源


0.引言
很多时候,大部分的人都是知道一个知识点,但是并不是理解这个知识点,今天我就来讲讲Restful,首先了解几个概念:

  1. REST:Representational State Transfer 表现层状态转化
  2. 资源(Resources):REST全称是表述性状态转移,那究竟指的是什么的表述? 其实指的就是资源,资源是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI
  3. 表现层(Representation):“资源"是一种信息实体,它可以有多种外在表现形式。我们把"资源"具体呈现出来的形式,叫做它的"表现层”(Representation)。
  4. 状态转化(State Transfer):如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。

1.什么是RESTful架构
一种设计风格
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

RESTful架构是对MVC架构改进后所形成的一种架构,通过使用事先定义好的接口与不同的服务联系起来。在RESTful架构中,浏览器使用POST,DELETE,PUT和GET四种请求方式分别对指定的URL资源进行增删改查操作。因此,RESTful是通过URI实现对资源的管理及访问,具有扩展性强、结构清晰的特点。

RESTful架构将服务器分成前端服务器和后端服务器两部分,前端服务器为用户提供无模型的视图;后端服务器为前端服务器提供接口。浏览器向前端服务器请求视图,通过视图中包含的AJAX函数发起接口请求获取模型。

通俗点:当我们前端向服务端发送请求的时候,以前我们可能会这样写:/addUser、 /deleteUser、/updateUser…等等形式,这样就会导致url膨胀,我们能做的就是只用一个url:/User,然后通过发送put、get、post、delete的请求来区分。
在这里插入图片描述

2.RESTFUL特点

  • 每一个URI代表1种资源;
  • 客户端使用GET、POST、PUT、DELETE 4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
  • 通过操作资源的表现形式来操作资源;
  • 资源的表现形式是XML或者HTML;
  • 客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

3.其他
github代码仓库:https://github.com/youzi530/maven_demo

参考:
1、菜鸟:https://www.runoob.com/w3cnote/restful-architecture.html
2、git代码:https://blog.csdn.net/qq_42846807/article/details/100858421
3、阮一峰的网络日志:https://www.ruanyifeng.com/blog/2011/09/restful.html

标签:架构,请求,到底,RESTful,URI,大名鼎鼎,服务器,Restful,资源
来源: https://blog.csdn.net/qq_40519943/article/details/120953225

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有