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

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

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

Примеры протоколов без сохранения состояния включают протокол Интернета (IP), который является основой для Интернет, а Протокол передачи гипертекста (HTTP), который является основой передачи данных для Всемирная паутина.

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

Примеры

Пример протокола без сохранения состояния: HTTP,[1] Это означает, что каждое сообщение запроса можно понимать изолированно.

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

Стекирование уровней протокола без сохранения состояния и с отслеживанием состояния

Между различными уровнями протоколов могут быть сложные взаимодействия между протоколами с сохранением состояния и без него. Например, HTTP является примером протокола без сохранения состояния, расположенного поверх TCP, протокол с отслеживанием состояния, который накладывается поверх IP, еще один протокол без сохранения состояния, который маршрутизируется в сети, использующей BGP, еще один протокол с отслеживанием состояния, предназначенный для передачи IP-пакетов в сети.

Такое наложение слоев продолжается даже выше HTTP. В качестве обходного пути отсутствия сеансового уровня в HTTP, HTTP серверы реализовать различные управление сеансом методы,[2] обычно используют уникальный идентификатор в печенье или параметр, который позволяет серверу отслеживать запросы, исходящие от одного и того же клиента, и эффективно создавать протокол с отслеживанием состояния поверх HTTP.

Смотрите также

Рекомендации

  1. ^ «RFC 7230 - протокол передачи гипертекста (HTTP / 1.1): синтаксис сообщений и маршрутизация». ietf.org. Получено 20 августа 2015.
  2. ^ "методы управления сеансом рассмотрены". Биты C cookie. Торонто. В архиве из оригинала на 13.02.2019. Получено 2011-04-12. Следующий материал предназначен для ознакомления читателя с различными методами, которые разработчики использовали для реализации отслеживания сеансов в Интернете. В дополнение к недостаткам, которые наблюдались при использовании, указаны основные рабочие характеристики каждого метода. Дополнительную информацию об управлении сеансом можно найти в Интернете. […]