当前位置: 首页 > Web前端 > CSS

什么是休息?

时间:2023-03-30 13:34:52 CSS

这里是修真学院的前端小教室。每篇文章分享自【背景介绍】【知识分析】【常见问题】【解决方案】【编码实践】【扩展思考】【更多讨论】【参考文献】八篇深入剖析前端这方面的知识/技能,本文分享:【什么是REST?】1.背景介绍要解释什么是REST,首先要了解什么是API(ApplicationProgrammingInterface,应用程序编程接口)。说白了,就像腾讯、阿里巴巴这样的公司。他们可以提供API。然后我们或其他一些小公司可以编写一个软件来连接或与这个接口(API)交互。例如,您可以使用手机上的其他软件将内容分享到微信朋友圈或新浪微博。这些软件与微信和微博的API交互。了解API可以轻松理解REST。它是一种架构风格,是腾讯或者其他公司在构建API时必须遵循的规则/风格,当然还有其他的规则可以使用。要具体了解REST是什么,就必须提到Web,因为REST是基于Web的。Web是一个分布式信息系统,提供对超文本文档和其他对象(资源)的访问。资源是Web架构的关键点,需要三个操作:标识、表示和交互。通过这三个操作,引入了三个概念:1.uri(统一资源标识符,包括url和urn)标识资源;2.representation(如html、图片、视频等)来表示资源;3.通过协议(包括http、ftp等)与资源进行交互。所以REST选择使用client/server模型,通过http协议和uri对资源进行CRUD(Create/Read/Update/Delete)操作。2、知识分析REST并不是“rest”这个词,而是ResourceRepresentationalStateTransfer的缩写:泛指资源在网络中以某种形式进行状态传递。分开来说:1.Resource:资源,即数据(网络的核心)。2.Representational:某种形式的表示,如JSON、XML、JPEG等;3.StateTransfer:状态改变。通过HTTP动词实现。REST描述了网络中客户端和服务器之间的一种交互形式;REST本身不实用,实用的是如何设计一个RESTfulAPI(REST风格的网络接口;在Server提供的RESTfulAPI中,URL中只使用名词来指定资源,原则上不要使用动词。”资源”是REST架构或整个网络处理的核心。使用HTTP协议中的动词来添加和修改资源。在Server和Client之间传递一种资源的表示形式,例如使用JSON、XML来传输文本,或者使用JPG,WebP传输图片等,使用HTTPStatusCode传输服务器的状态信息,比如最常用的200表示成功,500表示服务器内部错误等,web端不再使用将之前典型的PHP或JSP架构改成前端渲染和简单的业务逻辑,Web端和Server只使用上面定义的API传输数据和改变数据状态,格式一般为JSON,具体操作典型值资源的e,由HTTP动词决定表示常用的HTTP动词有五种(括号内是对应的SQL命令):1.GET(SELECT):从服务器获取资源(一项或多项)2.POST(CREATE):在服务器上创建新的资源3.PUT(UPDATE):更新服务器上的资源(客户端提供改变后的完整资源)4.PATCH(UPDATE):更新服务器上的资源(客户端提供改变的属性)5.DELETE(删除):从服务器上删除资源。例如:GET/zoos:列出所有动物园POST/zoos:新建一个动物园GET/zoos/ID:获取指定动物园的信息PUT/zoos/ID:更新指定动物园的信息(提供thezooPATCH/zoos/ID:Updatetheinformationofaspecifiedzoo(providesomeinformationaboutthezoo)DELETE/zoos/ID:删除一个动物园GET/zoos/ID/animals:列出指定动物园的所有动物DELETE/zoos/ID/animals/ID:删除指定动物园的指定动物3.常见问题如何设计Server的API来满足RESTful要求?URL根目录:https://example.org/api/v1/*https://api.example.com/v1/APIversioning:可以放在URL中,也可以使用HTTPheader:/api/v1/URI用名词代替动词,建议用复数形式。确保HEAD和GET方法安全,不会改变(污染)资源状态,资源地址建议使用嵌套结构:GET/friends/10375923/profile为什么要使用RESTful结构电子?大家都知道,“古代”的网页都是前后端一体的,在以前的桌面时代问题不大,但是这几年随着移动互联网的发展,各种类型的Client层出不穷溪流。RESTful可以通过一套统一的接口为Web、iOS和Android提供服务。此外,对于大多数平台,如Facebook、微博开放平台、微信公众平台等,它们不需要有一个显式的前端,只需要一套接口来提供服务。REST的优点和局限性1.客户端-服务器(Client-Server)客户端-服务器分离的优点:提高用户界面的可移植性(操作简单)通过简化服务器提高可扩展性(高性能、低成本)允许组件被分别优化(服务端和客户端可以分别改进和优化)2.无状态(Stateless)客户端的每一次请求都应该包含服务端需要的所有信息)3.可缓存(Cachable)服务端返回的信息必须标记是否它可以被缓存。如果缓存了,客户端可能会重用之前的信息来发送请求。优点:减少交互次数,减少交互的平均延迟。4.分层系统(LayeredSystem)系统组件不需要知道组件以外的他并与之通信。封装服务,引入中间层。优点:限制系统的复杂度,提高可扩展性。5.统一界面优势:提高交互的可见性,鼓励对组件进行个性化改进。6、支持按需代码(Code-On-Demand)优点:提高可扩展性4、扩展思维例如:比如我订阅了一个人的博客,想获取他发布的所有文章(这里是“他发布的所有文章”是一个资源资源)。于是我向他的服务发送了一个请求,说“我要获取你发布的所有文章,最好是atom格式”,这时候服务器返回给你的是atom格式的文章列表第一页(这里是“atom格式”“文章列表”是Representation的一种表现形式)。你看到第一页的末尾,想看第二页,这就是乐趣所在。如果服务器记录了应用程序的状态(stateful),那么你只需要向服务询问“我想看下一页”,服务器自然会返回第二页。同理,如果你当前在第二页,向服务器询问“我想看下一页”,你会获取到第三页,但是REST服务器只是无状态的,服务器不保存你当前在哪个页面,所以无法响应“下一页”的有状态请求,因此客户端需要维护当前应用状态(applicationstate),即“如何获取下一页资源”。当然,“下一个资源”的业务逻辑必须由服务器提供。服务器为文章列表的原子表示添加一个URI超链接(hyperlink),指向下一页文章列表对应的资源。客户端可以使用统一接口(UniformInterface)从这个URI中获取他想要的文章列表资源的下一页。上面的“可以进入下一页”就是应用的状态(State)。服务端将“可以进入下一页”的状态以原子表示的形式传递给客户端,这就是具象状态传递(REpresentationalStateTransfer)的概念。5、参考JSON编码规范:http://jsonapi.org/format/如何通俗易懂的解释REST和RESTful?:https://www.zhihu.com/questio...《我们相信每个人都可以成为工程师,从现在开始,找一个指导你入门的师兄,你在做的路上不再迷茫学习。这里是技能树。IT修真园:http://www.jnshu.com,初学者转行互联网行业的聚集地。”欢迎加入IT交流群565734203与大家一起探讨交流作者:IT修真源来源:CSDN原文:https://blog.csdn.net/jnshu_i...版权声明:本文为博主原创文章,转载请附上博文链接!