室内设计效果图360全景图,长沙官网seo技巧,急招一天一结临时工,珠海做网站找哪家公司RESTful简介
本节将从基础的概念开始介绍什么是RESTful、RESTful的特点、RESTful中的资源、HTTP Method、HTTP Status#xff0c;还将介绍RESTful和SOAP到底有哪些区别。
1.什么是RESTful
RESTful是目前流行的互联网软件服务架构设计风格。REST#xff08;Representationa…RESTful简介
本节将从基础的概念开始介绍什么是RESTful、RESTful的特点、RESTful中的资源、HTTP Method、HTTP Status还将介绍RESTful和SOAP到底有哪些区别。
1.什么是RESTful
RESTful是目前流行的互联网软件服务架构设计风格。RESTRepresentational State Transfer表述性状态转移一词是由Roy Thomas Fielding在2000年的博士论文中提出的它定义了互联网软件服务的架构原则如果一个架构符合REST原则则称之为RESTful架构。
REST并不是一个标准它更像一组客户端和服务端交互时的架构理念和设计原则基于这种架构理念和设计原则的Web API更加简洁更有层次。
1.1 RESTful的特点
1每一个URI代表一种资源。
2客户端使用GET、POST、PUT、DELETE四种表示操作方式的动词对服务端资源进行操作GET用于获取资源POST用于新建资源也可以用于更新资源PUT用于更新资源DELETE用于删除资源。
3通过操作资源的表现形式来实现服务端请求操作。
4资源的表现形式是JSON或者HTML。
5客户端与服务端之间的交互在请求之间是无状态的从客户端到服务端的每个请求都包含必需的信息。
符合RESTful规范的Web API需要具备如下两个关键特性
安全性安全的方法被期望不会产生任何副作用。当我们使用GET操作获取资源时不会引起资源本身发生改变也不会引起服务器状态的改变。幂等性幂等的方法保证了重复进行一个请求和一次请求的效果相同并不是指返回客户端的响应总是相同的而是指服务器上资源的状态从第一次请求后就不再改变。在数学中幂等性是指N次变换和一次变换的结果相同。
1.2 REST的产生背景
随着互联网的发展前端页面与后端的数据交互越来越频繁数据结构越来越复杂REST的出现极大地简化了前后端数据的交互逻辑。如果我们把前端页面看作一种用于展示的客户端那么API就是为客户端提供数据、操作数据的接口。这种设计可以获得极高的扩展性。
假设原本大家通过PC上的网上商城购物当需要扩展到手机等移动端时只需要开发针对iOS和Android的两个客户端通过客户端访问系统公共的Web API就可以完成通过浏览器页面提供的功能而后端代码基本无须改动如图所示。 RESTful风格的Web API支持我们使用统一的接口规范对接iOS、Android、HTML5和PC等客户端。正是由于REST有着众多优点因此REST一经提出就迅速取代了复杂而笨重的SOAP成为Web API的标准。
2.HTTP Method
什么是HTTP MethodHTTP方法呢
HTTP提供了POST、GET、PUT、DELETE等操作类型对某个Web资源进行Create、Read、Update和Delete操作。一个HTTP请求除了利用URI标志目标资源之外还需要通过HTTP Method指定针对该资源的操作类型。下表介绍一些常见的HTTP方法及其在RESTful风格下的使用。 总结了主要的HTTP方法与资源URI结合使用的建议返回值。常见的HTTP MethodHTTP方法有POST、GET、PUT、PATCH和DELETE它们分别对应Create、Read、Update和Delete或者CURD操作。当然还有许多其他方法比如OPTIONS和HEAD等但使用频率较低。
3.HTTP状态码
HTTP状态码就是服务向用户返回的状态码和提示信息客户端的每一次请求服务都必须给出回应回应包括HTTP状态码和数据两部分。
HTTP定义了40个标准状态码可用于传达客户端请求的结果。状态码分为以下5个类别
1xx信息通信传输协议级信息。2xx成功表示客户端的请求已成功接受。3xx重定向表示客户端必须执行一些其他操作才能完成其请求。4xx客户端错误此类错误状态代码指向客户端。5xx服务器错误服务器负责这些错误状态代码。
RESTful API中使用HTTP状态码来表示请求执行结果的状态适用于REST API设计的代码以及对应的HTTP方法如表所示。 HTTP协议提供的状态码和HTTP Method。通过RESTful API返回给客户端的状态码和提示信息可以判断出Web API的请求和执行情况。
除了以上基本的HTTP请求状态码外Web API服务端还需要定义业务相关的状态如1000订单提交成功、1002订单修改成功等。每种状态码都有标准的解释客户端只需查看状态码字典就知道相应业务的执行结果所以服务端应该返回尽可能精确的状态码。
4.REST与SOAP的区别
随着互联网的发展RESTful越来越流行那么RESTful和SOAP到底有哪些区别我们在设计Web服务时到底是应该选择目前最流行的RESTful还是选择老牌的WebService呢
SOAPSimple Object Access Protocol简单对象访问协议是一种标准化的通信规范主要用于Web服务。它有着严格的规范和标准包括安全、事务等各个方面的内容同时SOAP强调操作方法和操作对象的分离使用WSDL文件规范和XSD文件分别对其定义。
RESTful简化了WebService的设计它不再需要WSDL而是通过最简单的HTTP协议传输数据包括XML或JSON。既简化了设计也减少了网络传输量因为只传输代表数据的XML或JSON没有额外的XML包装。
REST强制所有的操作都必须是无状态的没有上下文的约束不需要考虑上下文和会话保持的问题极大地提高系统的可伸缩性。RESTful相对于SOAP更加简单明了它并没有一个明确的架构标准更像是一种设计风格其核心是面向资源而WebService基于SOAP协议主要核心是面向活动。