Отсутствие состояния в терминах HTTP означает, что каждый запрос не знает ни о каком предыдущем запросе, т. Е. В HTTP нет встроенного механизма для отслеживания того, кто делает запросы, и последствий этих запросов.
В терминах сервисов RESTful это означает, что каждый запрос не зависит от состояния, например, сохраненной информации клиента, для выполнения запроса - вся информация, необходимая для выполнения запроса, содержится в сообщении запроса (операция CRUD , рассматриваемый ресурс, токены аутентификации, идентификация платформы приложения и т. д.).
Это означает, что ваш RESTful API должен защищаться многоуровневой архитектурой, которая управляет аутентификацией, управлением сеансами и другими операциями, не относящимися к RESTful.
В этом контексте и сервисы RESTful, и HTTP должны работать с одинаковыми ограничениями: отсутствие состояния (как определено выше).
Может показаться интуитивно понятным проектировать REST API, подобный этому, но вы будете удивлены тесной связью, заложенной в ядре многих служб REST:
GET /users/:id
if authenticated and authorized //not stateless
send User resource
Чтобы бороться с этим, большинство каркасов HTTP предоставляют слои промежуточного программного обеспечения.
Полезные вопросы REST-дизайна: