В вычислениях протокол без сохранения состояния - это протокол связи, в котором информация о сеансе не сохраняется получателем, обычно сервером. Соответствующие данные сеанса отправляются получателю клиентом таким образом, что каждый переданный пакет информации может быть понят изолированно, без контекстной информации из предыдущих пакетов в сеансе. Это свойство протоколов без сохранения состояния делает их идеальными для приложений большого объема, повышая производительность за счет устранения нагрузки на сервер, вызванной сохранением информации о сеансе.
Протокол без сохранения состояния не требует, чтобы сервер сохранял информацию о сеансе или статус каждого взаимодействующего партнера в течение нескольких запросов. Напротив, протокол, который требует сохранения внутреннего состояния на сервере , известен как протокол с отслеживанием состояния . TCP , ориентированный на соединение сеанса является состоянием соединения , так как обе системы поддерживают информацию о самой сессии в ходе своей жизни.
Примеры протоколов без сохранения состояния включают Интернет-протокол (IP), который является основой Интернета , и протокол передачи гипертекста (HTTP), который является основой передачи данных во всемирной паутине .
Дизайн без сохранения состояния упрощает дизайн сервера, поскольку нет необходимости динамически выделять хранилище для обработки текущих разговоров. Если сеанс клиента умирает в середине транзакции, никакая часть системы не должна нести ответственность за очистку текущего состояния сервера. Недостатком безгражданства является то, что может потребоваться включать дополнительную информацию в каждый запрос, и эта дополнительная информация должна будет интерпретироваться сервером.
Примеры
Примером протокола без сохранения состояния является HTTP , [1] означающий, что каждое сообщение запроса можно понимать изолированно.
Сравните это с традиционным FTP- сервером, который проводит интерактивный сеанс с пользователем. Во время сеанса пользователю предоставляется средство для аутентификации и установки различных переменных (рабочий каталог, режим передачи), которые хранятся на сервере как часть состояния пользователя.
Стекирование уровней протокола без сохранения состояния и с отслеживанием состояния
Между различными уровнями протокола могут быть сложные взаимодействия между протоколами с сохранением состояния и без него. Например, HTTP является примером протокола без сохранения состояния, расположенного поверх TCP , протокола с отслеживанием состояния, который накладывается поверх IP , другого протокола без состояния, который маршрутизируется в сети, которая использует BGP , другой протокол с отслеживанием состояния, чтобы направлять IP-пакеты передаются по сети.
Такое наложение слоев продолжается даже выше HTTP. В качестве обходного пути отсутствия уровня сеанса в HTTP серверы HTTP реализуют различные методы управления сеансами [2], обычно используя уникальный идентификатор в файле cookie или параметре, который позволяет серверу отслеживать запросы, исходящие от одного и того же клиента, и эффективно создавать протокол с отслеживанием состояния поверх HTTP. [3]
Смотрите также
Рекомендации
- ^ «RFC 7230 - протокол передачи гипертекста (HTTP / 1.1): синтаксис сообщений и маршрутизация» . ietf.org . Проверено 20 августа 2015 года .
- ^ «Рассмотрены методы управления сеансом» . C печений биты . Торонто. Архивировано 13 февраля 2019 года . Проверено 12 апреля 2011 .
Следующий материал предназначен для ознакомления читателя с различными методами, которые разработчики использовали для реализации отслеживания сеансов в Интернете. В дополнение к недостаткам, которые наблюдались при использовании, упоминаются основные рабочие характеристики каждого метода. Дополнительную информацию об управлении сеансом можно найти в Интернете. […]
- ^ Двайер, Гарет (18 ноября 2020 г.). «Архитектура с сохранением состояния и без сохранения состояния» . Виртуозный .