Учебники

Веб-сервисы RESTful — Безгражданство

Согласно архитектуре 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.

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