Безгражданство в покое
Я читаю книгу об архитектуре отдыха и наткнулся на эту часть
В частности, приложение должно быть разделено на модель клиент-сервер, а сервер должен оставаться полностью не сохраняющим состояния. Клиентский контекст не может храниться на сервере, и ресурсы также должны быть однозначно и однозначно идентифицированы.
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.
Вы только что купили книгу или наручные часы? Сервер не знает, нажали ли вы кнопку назад или нет.