Протокол без сохранения состояния

В вычислительной технике, протокол без сохранения состояния (англ. Stateless protocol) — протокол передачи данных, который относит каждый запрос к независимой транзакции, которая не связана с предыдущим запросом, то есть общение с сервером состоит из независимых пар запрос-ответ[англ.].

Протокол без сохранения состояния не нуждается в сохранении информации о сессии на сервере или статусе каждого клиента во время множественных запросов. В противовес этому, протокол, которому необходим учёт о внутреннем состоянии сервера, называется протоколом с сохранением состояния (англ. stateful).

Примерами протоколов без сохранения состояния являются Internet Protocol (IP), фундаментальный протокол сети Интернет, и Hypertext Transfer Protocol (HTTP), фундаментальный протокол передачи данных во всемирной паутине.

Дизайн без сохранения состояния упрощает архитектуру сервера, потому что нет необходимости работать с сессиями на стороне сервера, чтобы организовывать коммуникацию клиент-сервер. Если сессия клиента кончается в середине транзакции, то ни одной части системы не приходится очищать состояние сервера до её выполнения. Недостатком же отсутствия состояния является необходимость включать дополнительную информацию в каждый запрос, а затем серверу необходимо будет обработать эту информацию.

Примеры

Пример протокола без сохранения состояния — HTTP[1]; это означает, что каждое сообщение запроса может быть понято в изоляции от других запросов.

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

Примечания

  1. RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing. ietf.org. Дата обращения: 27 февраля 2017. Архивировано 14 декабря 2016 года.