Безгражданство в покое

Я читаю книгу об архитектуре отдыха и наткнулся на эту часть

В частности, приложение должно быть разделено на модель клиент-сервер, а сервер должен оставаться полностью не сохраняющим состояния. Клиентский контекст не может храниться на сервере, и ресурсы также должны быть однозначно и однозначно идентифицированы.

1 что означает, что сервер остается полностью без сохранения состояния?

2 Никакой клиентский контекст не может храниться на сервере? какой клиентский контекст?

Любая помощь в устранении этого приветствуется.

1 ответ

Решение

что означает, что сервер остается полностью без сохранения состояния?

Это означает, что каждое сообщение, отправленное на сервер, считается завершенным; сервер не должен "запоминать" предыдущие сообщения от клиента.

Подумайте о покупке книги.

Client: What's the price of [Rest in Practice: Hypermedia and Systems Archicture]
Server: The price of [Rest in Practice: Hypermedia and Systems Archicture] is 36.16 USD.
Client: Buy it.

Чтобы сервер знал, что означает "это", он должен помнить предыдущий разговор о цене книги, знать, о какой книге говорит клиент.

Безгражданство означает, что клиент никогда не говорит в местоимениях

Версия без состояния выглядит как

Client: Buy [Rest in Practice: Hypermedia and Systems Archicture].

Все, что сервер должен знать о текущем состоянии клиента, включено в сообщение. Может быть, этот клиент сначала спросил цену, а может и нет. Это не имеет значения, потому что вся информация здесь, в этом сообщении.

Рассмотрим эту последовательность:

Client: What's the price of [Rest in Practice: Hypermedia and Systems Archicture]
Server: The price of [Rest in Practice: Hypermedia and Systems Archicture] is 36.16 USD.
Client: What's the price of [Royal Oak Tourbillon]
Server: The price of [Royal Oak Tourbillon] is 122000.00 USD.
Client: Buy it.

Вы только что купили книгу или наручные часы? Сервер не знает, нажали ли вы кнопку назад или нет.

Другие вопросы по тегам