Подтвердить что ты не робот

Что означает "передача состояния" в репрезентативном переносе состояния (REST)?

Что передает Передача состояния в представлении State State Transfer?

Нашли несколько объяснений об этом (например, здесь), но я до сих пор не понимаю. Например, в статье сказано

Представление помещает клиентское приложение в состояние.

Почему? Что состояние (как я понимаю, что-то вроде сеанса) связано с представлением ресурса?

4b9b3361

Ответ 1

Почему? Что состояние (как я понимаю, что-то вроде сеанса) связано с представлением ресурса?

Объект имеет атрибуты (или состояние) и поведение (или методы).

Если я хочу переместить объект с моего рабочего стола на сервер, я должен сделать следующее:

  • Создайте представление состояния объекта.

  • Перенесите это представление с рабочего стола на сервер.

Методы, которые я не передаю. Я устанавливаю одно и то же определение класса на обеих машинах.

Итак, REST - это создание представления текущего состояния объекта, чтобы он мог быть перенесен на другой сервер, с которого объект может быть восстановлен.

Мы отправляем только состояние - атрибуты объекта. И мы должны создать внешнее сериализованное представление этого состояния.

Ответ 2

Рассмотрим клиентское приложение как своего рода гигантскую машину состояний. Начальное состояние клиента равно первому представлению, возвращенному с сервера. Ссылки в возвращаемом представлении предоставляют возможные "переходы состояний".

Можно подумать, что существуют два основных типа ссылок: пассивный и активный. Пассивные ссылки, такие как <img> и <link rel="stylesheet">, фактически не вызывают переход состояния, они просто увеличивают текущее состояние. Ссылки, такие как <form> и <a>, однако, являются активными ссылками и причиной перехода состояния. После выполнения одной из этих ссылок новое состояние клиента равно возвращенному представлению, aka передача состояния.

Если вы привыкли создавать традиционные клиентские приложения для настольных компьютеров, вы обнаружите, что это принципиально другая архитектура. Не тот, который вы, вероятно, забудете на ночь. Первоначально этот подход может показаться очень ограниченным, но если вы считаете, что клиентское приложение может быть хостом для многих одновременно выполняющих государственные машины, вы начнете понимать, что вы можете сделать что угодно, что вы могли бы использовать удаленную архитектуру объекта и все еще поддерживать свободный соединение веб-браузера.

Ответ 3

Сеть состоит из ресурсов. Ресурс - это любой предмет, представляющий интерес. Например, TheBoeing Aircraft Corp может определить ресурс 747. Клиенты могут получить доступ к этому ресурсу с помощью thisURL: http://www.boeing.com/aircraft/747A возвращается ресурс (например, Boeing747.html). Представление помещает клиентское приложение в состояние. Результатом обращения клиента к гиперссылке inBoeing747.html является доступ к другому ресурсу. Новое представление помещает клиентское приложение в другое состояние. Таким образом, клиентское приложение изменяет (передает) состояние с каждым представлением ресурсов → Передача репрезентативного состояния!