Rest是一种体系结构样式,不是协议

Rest是一种体系结构样式,不是协议,rest,Rest,我读到Rest是一种架构风格,而不是协议。如果有人能详细说明,我将不胜感激。 谢谢一个很好的类比是将协议视为如何编写消息,将REST视为机器如何处理它接收到的消息 将协议视为定义两个端点之间数据的组织方式。有几种不同的协议,如HTTP、TCP、IP和ARP。所有这些协议的共同点是,它们代表了一种标准,用于以通用方式定义数据,以便任何运行能够通过这些协议解释数据的程序的机器都能正确、准确地解释信号。在每种情况下,每次发送请求时,都会将二进制文件发送到网络(可以包括internet)。二进制表示的配

我读到Rest是一种架构风格,而不是协议。如果有人能详细说明,我将不胜感激。
谢谢

一个很好的类比是将协议视为如何编写消息,将REST视为机器如何处理它接收到的消息

将协议视为定义两个端点之间数据的组织方式。有几种不同的协议,如
HTTP
TCP
IP
ARP
。所有这些协议的共同点是,它们代表了一种标准,用于以通用方式定义数据,以便任何运行能够通过这些协议解释数据的程序的机器都能正确、准确地解释信号。在每种情况下,每次发送请求时,都会将二进制文件发送到网络(可以包括internet)。二进制表示的配置方式是,它们是在协议中配置的消息,例如
HTTP
,具体取决于您关注的网络层的哪一层(
HTTP
位于应用层,您可以在此处阅读更多内容:)

另一方面,REST仅在其消息被解释后才处理发送到端点的数据。换句话说,接收消息,将该消息转换为命令,执行这些命令,生成响应,并使用协议(通常是应用层中的
HTTP
)转换该响应消息,然后将其作为响应发送回

当点A向点B的REST API体系结构发送请求时,它首先将该数据转换为标准化协议(例如
应用层的
HTTP
,以及其他需要的协议)然后通过网络发送该消息,直到到达B点。当B点接收到该数据时,它转换该数据并将其传递到REST API,REST API将数据解释为命令并运行其特定功能。API的函数完成后,它使用协议再次编码数据,并将响应发送回点a

你可以这样想。协议创建消息,以便发送和理解。REST负责确保服务器执行预期的操作,而不是定义如何组织数据的标准,以便所有可能的端点都能识别数据

这里有一些很好的参考资料:

这很复杂,需要一段时间才能理解。它比我在这里展示的内容要多得多,但希望它能为您提供一个良好的起点。

协议通常描述两个(或更多)对等方必须交换的确切消息(或其中的一部分)。还指定编排如何交换这些消息以及它们的含义

体系结构样式(如REST)根本不描述消息,而是指定消息、编排或系统部分必须满足的需求(体系结构约束)

因此,虽然协议可能会说:“使用以下格式的JSON来请求报价”。一种架构风格只是说:“客户端可以联系服务器,但不能以其他方式”。这是一个完全不同的层次

以下是它们之间的关系:架构样式就像特定架构的模板。一个特定的体系结构反过来定义了组件之间的协议

我读到Rest是一种架构风格,而不是协议。如果有人能详细说明,我将不胜感激

体系结构样式是一组协调的体系结构约束,这些约束限制了体系结构元素的角色/特征以及符合该样式的任何体系结构中这些元素之间允许的关系

中介绍了构成REST体系结构样式的体系结构约束的概述

这也有助于回顾菲尔丁的演讲,他在演讲中指出了对REST的具体误解

相反,如果你看,你会看到它以

超文本传输协议(HTTP)是一种无状态的应用程序级请求/响应协议,它使用可扩展语义和自描述消息有效负载与基于网络的超文本信息系统进行灵活交互

你可以看看简·纽马奇的书,书中有一章是关于

协议通过指定消息、数据类型、编码格式等来定义分布式应用程序的两个组件之间可以进行的对话类型


您会注意到,REST并没有指定其中任何一项——它只限制您可以做出的选择。

REST是一种体系结构样式,因为它依赖于简单的URL。这不是一个协议,因为该协议是HTTP。仔细研究的答案!谢谢所有的类比和它们的阐述确实有助于理解这个概念。