Согласно архитектуре REST, веб-служба RESTful не должна сохранять состояние клиента на сервере. Это ограничение называется безгражданством. Клиент несет ответственность за передачу своего контекста на сервер, а затем сервер может сохранить этот контекст для обработки дальнейшего запроса клиента. Например, сеанс, поддерживаемый сервером, идентифицируется идентификатором сеанса, переданным клиентом.
Веб-службы RESTful должны придерживаться этого ограничения. В главе RESTful Web Services — Methods мы увидели, что методы web-сервиса не хранят никакой информации от клиента, с которого они вызваны.
Рассмотрим следующий URL —
https: // локальный: 8080 / UserManagement / отдых / UserService / пользователей / 1
Если вы нажмете указанную выше ссылку с помощью браузера или с помощью клиента на основе Java или с помощью Postman, результатом всегда будет пользовательский XML, идентификатор которого равен 1, поскольку сервер не хранит никакой информации о клиенте.
<user> <id>1</id> <name>mahesh</name> <profession>1</profession> </user>
Преимущества безгражданства
Ниже приведены преимущества безгражданства в веб-службах RESTful.
-
Веб-сервисы могут обрабатывать каждый запрос метода независимо.
-
Веб-сервисы не должны поддерживать предыдущие взаимодействия клиента. Это упрощает дизайн приложения.
-
Поскольку HTTP сам по себе является протоколом без сохранения состояния, веб-службы RESTful без проблем работают с протоколами HTTP.
Веб-сервисы могут обрабатывать каждый запрос метода независимо.
Веб-сервисы не должны поддерживать предыдущие взаимодействия клиента. Это упрощает дизайн приложения.
Поскольку HTTP сам по себе является протоколом без сохранения состояния, веб-службы RESTful без проблем работают с протоколами HTTP.
Недостатки безгражданства
Ниже приведены недостатки безгражданства в веб-сервисах RESTful.
Веб-сервисы должны получать дополнительную информацию в каждом запросе, а затем интерпретировать, чтобы получить состояние клиента в случае необходимости взаимодействия с клиентом.