HTTP имеет файлы cookie HTTP. Файлы cookie позволяют серверу отслеживать состояние пользователя, количество подключений, последнее подключение и т. Д.
HTTP имеет постоянные соединения (Keep-Alive), где несколько запросов могут быть отправлены с одного TCP-соединения.
Ответы:
Даже если несколько запросов могут быть отправлены через одно и то же соединение HTTP, сервер не придает особого значения их поступлению через один и тот же сокет. Это исключительно производительность, предназначенная для минимизации времени / полосы пропускания, которые в противном случае были бы потрачены на восстановление соединения для каждого запроса.
Что касается HTTP, то все они все еще являются отдельными запросами и должны содержать достаточно информации для выполнения запроса. В этом суть "безгражданства". Запросы не будут связаны друг с другом, если отсутствует какая-либо общая информация, о которой знает сервер, которая в большинстве случаев является идентификатором сеанса в файле cookie.
источник
Из Википедии :
Что делает протокол не имеющим состояния, так это то, что серверу не требуется отслеживать состояние по нескольким запросам, а не то, что он не может этого делать, если хочет. Это упрощает контракт между клиентом и сервером и во многих случаях (например, обслуживание статических данных по CDN) сводит к минимуму объем данных, которые необходимо передать. Если бы серверам требовалось поддерживать состояние посещений клиентов, структура выдачи и ответа на запросы была бы более сложной. Как таковая, простота модели - одна из ее главных особенностей.
источник
Поскольку протокол без сохранения состояния не требует, чтобы сервер сохранял информацию о сеансе или состояние каждого коммуникационного партнера в течение нескольких запросов.
HTTP - это протокол без сохранения состояния, который означает, что соединение между браузером и сервером теряется после завершения транзакции.
источник
HTTP вызывается как,
stateless protocol
потому что каждый запрос выполняется независимо, без каких-либо сведений о запросах, которые были выполнены до него, что означает, что после завершения транзакции соединение между браузером и сервером также теряется.Протокол делает то,
stateless
что в своем первоначальном дизайне HTTP является относительно простымfile transfer protocol
:Не было никакой связи между одним соединением и другим, даже от одного и того же клиента. Это упрощает контракт между клиентом и сервером и во многих случаях сводит к минимуму объем данных, которые необходимо передать.
источник
Если протокол HTTP задан как полный протокол State, окно браузера использует одно соединение для связи с веб-сервером для множественного запроса, переданного веб-приложению. Это дает возможность окну браузера на длительное время устанавливать соединения между окном браузера и веб-серверами и сохранять они находятся в состоянии ожидания в течение длительного времени. Это может создать ситуацию достижения максимальных подключений веб-сервера, даже если большинство подключений в клиентах не используются.
источник
HTTP является без установления соединения, и это является прямым результатом того, что HTTP является протоколом без сохранения состояния. Сервер и клиент знают друг друга только во время текущего запроса. После этого они оба забывают друг о друге. Из-за этой природы протокола ни клиент, ни браузер не могут сохранять информацию между различными запросами на веб-страницах.
источник
Что такое безгражданство ??
Как только запрос сделан и ответ возвращен клиенту, соединение будет разорвано или прервано. Сервер забудет все о запрашивающей стороне.
Почему без гражданства ??
Интернет выбирает протокол без сохранения состояния. Это был гениальный выбор, потому что первоначальная цель Интернета состояла в том, чтобы позволить документам (веб-страницам) обслуживаться чрезвычайно широко. людей, использующих очень простое оборудование для сервера.
Поддержание продолжительного соединения было бы чрезвычайно ресурсоемким.
Если в Интернете был выбран протокол с отслеживанием состояния, тогда нагрузка на сервер была бы увеличена для поддержания соединения посетителя.
источник
HTTP
без гражданстваTCP
С состоянием. Нет так называемогоHTTP connection
, но толькоHTTP request
иHTTP response
. Нам не нужно ничего поддерживать, чтобы сделать другоеHTTP request
. Заголовок соединения, который является «keep-alive», означает, чтоTCP
он будет повторно использоваться последующимиHTTP
запросами и ответами, вместо того, чтобы постоянно разъединять и восстанавливатьTCP
соединение.источник
Я думаю, что кто-то выбрал очень неудачное название для концепции STATELESS, и поэтому все недоразумение вызвано. Речь идет не о хранении каких-либо ресурсов, а скорее об отношениях между клиентом и сервером.
Клиент: Я держу все ресурсы на своей стороне и высылаю вам «список» всех важных предметов, которые необходимо обработать. Делать свою работу.
Сервер: Хорошо, позвольте мне взять на себя ответственность за фильтрацию того, что важно, чтобы дать вам правильный ответ.
Это означает, что сервер является «подчиненным» клиента и должен забыть о своем «хозяине» после каждого запроса. На самом деле, STATELESS относится только к состоянию сервера.
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_3
источник