在阅读了大量关于REST和SOAP之间的区别之后,我的印象是REST只是HTTP的另一种说法。有人能解释一下REST给HTTP添加了什么功能吗?
注意:我并不是在寻找REST和SOAP的比较。
在阅读了大量关于REST和SOAP之间的区别之后,我的印象是REST只是HTTP的另一种说法。有人能解释一下REST给HTTP添加了什么功能吗?
注意:我并不是在寻找REST和SOAP的比较。
当前回答
REST不一定绑定到HTTP。基于rest的web服务只是遵循基于rest的体系结构的web服务。
What is Rest -
1- Client-server
2- Stateless
3- Cacheable
4- Layered system
5- Code on demand
6- Uniform interface
其他回答
HTTP是一种应用协议。REST是一组规则,遵循这些规则,您就可以构建具有特定约束集的分布式应用程序。
如果您正在寻找REST中区分RESTful应用程序与任何HTTP应用程序的最重要的约束,我会说“自描述”约束和超媒体约束(又名hypermedia as the Engine of application State (HATEOAS))是最重要的。
自描述约束要求RESTful请求在用户意图中是完全自描述的。这允许中介(代理和缓存)安全地对消息进行操作。
HATEOAS约束是关于将您的应用程序转换为一个链接网络,其中客户端的当前状态基于它在该网络中的位置。这是一个棘手的概念,需要比现在更多的时间来解释。
不太……
http://en.wikipedia.org/wiki/Representational_State_Transfer
REST was initially described in the context of HTTP, but is not limited to that protocol. RESTful architectures can be based on other Application Layer protocols if they already provide a rich and uniform vocabulary for applications based on the transfer of meaningful representational state. RESTful applications maximise the use of the pre-existing, well-defined interface and other built-in capabilities provided by the chosen network protocol, and minimise the addition of new application-specific features on top of it.
http://www.looselycoupled.com/glossary/SOAP
(简单对象访问协议 web服务消息的标准。 SOAP基于XML定义了一个信封 格式和各种规则 描述它的内容。见过( WSDL和UDDI)作为三者之一 web服务的基础标准, 它是用于 交换web服务,但不是 意思是唯一的;REST的支持者 说它增加了不必要的东西 的复杂性。
具象状态传输
REST是一组规则,遵循这些规则,您就可以构建具有特定约束集的分布式应用程序。
REST是用于交换任何(XML、JSON等)消息的协议,这些消息可以使用HTTP来传输。
特点:
它是无状态的,这意味着在理想情况下客户端和服务器之间不应该维护任何连接。 客户端负责将其上下文传递给服务器,然后服务器可以存储此上下文以处理客户端的进一步请求。例如,服务器维护的会话由客户端传递的会话标识符来标识。
无国籍的好处:
Web服务可以分别处理每个方法调用。 Web服务不需要维护客户机以前的交互。 这反过来又简化了应用程序的设计。 与TCP不同,HTTP本身是一种无状态协议,因此RESTful Web服务可以与HTTP协议无缝地工作。
无国籍的缺点:
需要在每个请求中添加一个标题形式的额外层,以保存客户机的状态。 为了安全起见,我们需要为每个请求添加一个头部信息。
REST支持的HTTP方法:
得到:/ / someotherstring字符串 它是幂等的,理想情况下应该在每次调用时返回相同的结果
把: 和GET一样。幂等性,用于更新资源。
POST:应该包含一个url和正文 用于创建资源。理想情况下,多个调用应该返回不同的结果,并应该创建多个产品。
删除: 删除服务器上的资源。
负责人:
HEAD方法和GET方法是一样的,只是服务器不能在响应中返回消息体。响应HEAD请求的HTTP报头中包含的元信息应该与响应GET请求时发送的信息相同。
选项:
此方法允许客户端确定与资源相关的选项和/或需求,或服务器的功能,而无需暗示资源操作或启动资源检索。
HTTP响应
点击这里查看所有的回答。
以下是一些重要的建议: 200 -好的 3XX -来自客户端和url重定向所需的其他信息 400 -错误请求 401 -未经授权访问 403 -禁止 请求有效,但服务器拒绝操作。用户可能没有资源的必要权限,或者可能需要某种类型的帐户。
404 -未找到 无法找到所请求的资源,但将来可能可用。允许客户端的后续请求。
405 -方法不允许 所请求的资源不支持请求方法;例如,表单上的GET请求要求通过POST显示数据,或者在只读资源上的PUT请求。
404 -未找到请求 内部服务器故障 502 -网关错误
HTTP是一种契约,一种通信协议,REST是一种概念,一种架构风格,可以使用HTTP、FTP或其他通信协议,但广泛与HTTP一起使用。
REST暗示了一系列关于服务器和客户端应该如何交互的约束。HTTP是一种具有特定机制的通信协议,用于服务器-客户端数据传输,它最常用于REST API,因为REST是受WWW (world wide web)的启发,在REST定义之前,WWW大量使用HTTP,因此使用HTTP更容易实现REST API风格。
REST中有三个主要的约束(但还有更多):
服务器和客户端之间的交互应该只通过超文本来描述。 服务器和客户端应该是松散耦合的,彼此之间不做任何假设。客户端应该只知道资源入口点。交互数据应该由服务器在响应中提供。 服务器不应该存储任何关于请求上下文的信息。请求必须是独立的和幂等的(意思是如果相同的请求无限次重复,得到的结果完全相同)
HTTP只是一种通信协议(一种工具),可以帮助实现这一点。
欲了解更多信息,请查看以下链接:
https://martinfowler.com/articles/richardsonMaturityModel.html http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven
不,REST是HTTP应该使用的方式。
今天我们只使用了HTTP协议的一小部分方法——即GET和POST。REST的方法是使用协议的所有方法。
例如,REST规定使用DELETE来删除URI后面的文档(可以是文件、状态等),而使用HTTP,您可能会滥用GET或POST查询,如…product/?delete_id=22。