Рассмотрим клиентское приложение как своего рода гигантский конечный автомат. Начальное состояние клиента равно первому представлению, возвращенному с сервера. Ссылки в возвращаемом представлении обеспечивают возможные «переходы состояний».
Следует отметить, что существует два основных типа ссылок: пассивная и активная. Пассивные ссылки, такие как <img>
и <link rel="stylesheet">
, на самом деле не вызывают переход состояния, они просто увеличивают текущее состояние. Однако ссылки типа <form>
и <a>
являются активными и вызывают переход состояния. После перехода по одной из этих ссылок новое состояние клиента будет равно возвращенному представлению, известному как передача состояния .
Если вы привыкли создавать традиционные клиентские приложения для настольных компьютеров, вы обнаружите, что это радикально другая архитектура. Не тот, который вы, вероятно, за ночь уродите. Изначально этот подход может показаться очень ограничивающим, но если учесть, что клиентское приложение может быть хостом для множества одновременно выполняющихся конечных автоматов, вы начнете понимать, что вы можете делать практически все, что вы могли бы, используя архитектуру удаленных объектов, и при этом поддерживать свободную архитектуру подключение веб-браузера.