代表性国家转移(REST)中的"国家转移"是指什么?

use*_*011 16 rest terminology http

什么是状态转移的表述性状态转移是指什么?

找到一些关于此的解释(例如这里),但我仍然不明白.例如,在文章中说

该表示将客户端应用程序置于某个状态.

为什么?状态(我理解它,类似于会话)与资源的表示有什么关系?

S.L*_*ott 18

为什么?状态(我理解它,类似于会话)与资源的表示有什么关系?

对象具有属性(或状态)和行为(或方法).

如果我想将对象从桌面移动到服务器,我必须执行以下操作:

  1. 创建对象状态的表示.

  2. 将该表示从桌面传输到服务器.

我不转移的方法.我在两台机器上安装了相同的类定义.

因此,REST是关于创建对象当前状态的表示,以便可以将其传输到可以从中重构对象的另一个服务器.

我们只发送对象的状态 - 属性.我们必须创建该状态的外部序列化表示.

  • @ user2011状态转移更多的是关于从状态机中的一个状态转换到另一个状态.REST"状态转移"是关于行为的,与通过线路传输对象无关. (3认同)
  • 尽管听起来如此,State Transfer与对象序列化并不完全相同. (2认同)

Dar*_*ler 11

将客户端应用程序视为一种巨型状态机.客户端的初始状态等于从服务器返回的第一个表示.返回表示中的链接提供可能的"状态转换".

需要注意的是,有两种主要类型的链接,被动和主动.被动链接喜欢<img>并且<link rel="stylesheet">实际上不会导致状态转换,它们只是增加当前状态.像链接<form><a>不过是活动的环节和原因的状态转变.在遵循这些链接之一后,新的客户端状态等于返回的表示,即状态转移.

如果您习惯于构建传统桌面客户端应用程序,您会发现这是一个完全不同的架构.不是一个你可能一夜之间徘徊的人.最初这种方法可能看起来非常有限但是当您认为客户端应用程序可以成为许多同时执行状态机的主机时,您将开始意识到您可以执行任何可以使用远程对象体系结构并且仍然保持松散的状态Web浏览器的耦合.