HTTP和REST之间有什么区别?

HTTP和REST之间有什么区别?,http,rest,Http,Rest,在阅读了很多关于REST和SOAP之间的区别之后,我得到了一个印象,REST只是HTTP的另一个词。有人能解释一下REST为HTTP添加了什么功能吗 注意:我不想比较REST和SOAP 更新:谢谢你的回答。现在我很清楚REST只是一套关于如何使用HTTP的规则。因此,我发布了一个关于 注:我现在掌握了休息的含义;如前所述,REST意味着按其本意使用HTTP。然而,我不确定这是否值得一个属于自己的术语,我当然也没有得到关于它的炒作。不太 REST最初是在 HTTP的上下文,但不限于 该议定书。R

在阅读了很多关于REST和SOAP之间的区别之后,我得到了一个印象,REST只是HTTP的另一个词。有人能解释一下REST为HTTP添加了什么功能吗

注意:我不想比较REST和SOAP

更新:谢谢你的回答。现在我很清楚REST只是一套关于如何使用HTTP的规则。因此,我发布了一个关于

注:我现在掌握了休息的含义;如前所述,REST意味着按其本意使用HTTP。然而,我不确定这是否值得一个属于自己的术语,我当然也没有得到关于它的炒作。

不太

REST最初是在 HTTP的上下文,但不限于 该议定书。RESTful架构 可以基于其他应用程序 层协议(如果它们已经存在) 提供丰富统一的词汇表 对于基于传输的应用程序 有意义的代表性状态。 RESTful应用程序最大限度地利用了 预先存在的、定义明确的 接口和其他内置 所选人员提供的能力 网络协议,并将 添加新的特定于应用程序的 最重要的功能

(简单对象访问协议) web服务消息的标准。 SOAP基于XML定义了一个信封 格式和各种规则 描述其内容。看见 WSDL和UDDI)作为三者之一 Web服务的基础标准, 这是首选的协议 交换web服务,但不是通过 指唯一的一个;REST的支持者 说这是不必要的 复杂性


不,REST是应该使用HTTP的方式

今天,我们只使用了HTTP协议的一小部分方法,即
GET
POST
。剩下的方法是使用协议的所有方法


例如,REST规定使用
DELETE
删除URI后面的文档(无论是文件、状态等),而使用HTTP时,您可能会误用
GET
POST
查询,如
…product/?DELETE\u id=22
HTTP是一种应用程序协议。REST是一组规则,遵循这些规则,您可以构建一个具有特定约束集的分布式应用程序

如果您正在寻找REST最重要的约束,将REST应用程序与任何HTTP应用程序区分开来,那么我认为“自我描述”约束和超媒体约束(又称超媒体作为应用程序状态引擎(HATEOAS))是最重要的

自我描述约束要求RESTful请求在用户意图中完全自我描述。这允许中介(代理和缓存)安全地处理消息


HATEOAS约束是关于将应用程序转换为链接web,其中客户端的当前状态基于其在该web中的位置。这是一个棘手的概念,需要比我现在更多的时间来解释。

REST是处理大型系统(如web)设计的一种特殊方式

这是一套“规则”(或“约束”)


HTTP是一种试图遵守这些规则的协议。

据我所知,REST强制使用可用的HTTP命令,因为它们本来就是要使用的

例如,我可以做:

GET
http://example.com?method=delete&item=xxx
但对于rest,我将使用“DELETE”请求方法,不再需要“method”查询参数

DELETE
http://example.com?item=xxx

HTTP是一种通过网络传输消息的通信协议。 SOAP是交换基于XML的消息的协议,可以使用HTTP传输这些消息。
Rest是一种用于交换任何(XML或JSON)消息的协议,可以使用HTTP传输这些消息。

HTTP是一种用于通信的协议,通常用于与internet资源或任何应用程序与web浏览器客户端通信

REST意味着您在设计应用程序时使用的主要概念是资源:对于要执行的每个操作,您需要定义一个资源,您通常只对其执行CRUD操作,这是一个简单的任务。因此,对4个CRUD操作使用HTTP协议中使用的4个动词非常方便(GET用于读取,POST用于创建,PUT用于更新,DELETE用于删除)。 这与旧的RPC(远程过程调用)概念不同,在旧概念中,您有一组要作为用户调用的结果执行的操作。例如,如果您考虑如何在帖子上描述一个类似facebook的帖子,那么使用RPC,您可以创建名为AddLikeToPost和RemoveLikeFromPost的服务,并将其与所有其他与FB帖子相关的服务一起管理,因此您不需要为类似的帖子创建特殊对象。 使用REST,您将拥有一个类似的对象,该对象将使用Delete和Create函数分别管理。这也意味着它将在数据库中描述一个单独的实体。这看起来可能有点小差别,但这样做通常会产生更简单的代码和更简单的应用程序。通过这种设计,应用程序的大部分逻辑从对象的结构(模型)上看是显而易见的,而RPC通常需要显式添加更多的逻辑

设计RESTful应用程序通常要困难得多,因为它要求您以简单的方式描述复杂的事情。仅使用CRUD函数来描述所有功能是很棘手的,但这样做之后,您的生活会简单得多,并且您会发现您编写的方法要短得多

现有的另一个约束REST架构不可使用 与客户机通信时的会话上下文(无状态),意味着理解谁是客户机以及他想要什么所需的所有信息都通过web消息传递。对函数的每次调用都是自描述性的,以前没有与客户机的对话可以引用
What is Rest -
1- Client-server
2- Stateless
3- Cacheable
4- Layered system
5- Code on demand
6- Uniform interface
There are three major constraints in REST (but there are more):