powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
56 сообщений из 56, показаны все 3 страниц
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39867984
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В книге (в 6 главе) расписывается, что иметь сервер без состояния это очень удобно, классно и всё такое. Пишут, что всегда старайтесь использовать сервер без состояния.

В какой-то момент пишут, что всё так хранить состояние надо. Например корзину юзера интернет магазина полюбому надо хранить.

и в конце написана фраза:

Хорошая новость заключается в том, что для реализации сеанса с состоянием, оказывается, можно применять сервер без состояния.

дальше по книге идёт описания способов хранения состояние сеанса : на клиенте, на сервер, в базе.

Вот что-то я не прочуял что именно значит сервер без состояния. И почему сохранение сеанса на стороне сервера не делает его stateful ?
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868101
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stateless удобно кешировать и поднимать новые ноды. Ничего не теряешь при этом.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868105
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerХорошая новость заключается в том, что для реализации сеанса с состоянием, оказывается, можно применять сервер без состояния.там не написано каким образом?
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868108
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С корзиной - некрасиво получается. Она не укладывается в концепцию Stateless. Да и не надо.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868109
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerХорошая новость заключается в том, что для реализации сеанса с состоянием, оказывается, можно применять сервер без состояния.там не написано каким образом?

я искал, но не нашёл
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868115
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerPetroNotC Sharpпропущено...
там не написано каким образом?

я искал, но не нашёля тоже не в курсе.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868118
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот например. По отношению к Rest-архитектуре.

https://restfulapi.net/statelessness/ Advantages of Statelessness

There are some very noticeable advantages for having REST APIs stateless.

Statelessness helps in scaling the APIs to millions of concurrent users by deploying it to multiple servers. Any server can handle any request because there is no session related dependency.

Being stateless makes REST APIs less complex – by removing all server-side state synchronization logic.

A stateless API is also easy to cache as well. A specific software can decide whether or not to cache the result of an HTTP request just by looking at that one request. There’s no nagging uncertainty that state from a previous request might affect the cacheability of this one. It improves the performance of applications.

The server never loses track of “where” each client is in the application because the client sends all necessary information with each request.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868202
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Судя по всему автор имел ввиду, что если хранить сессию на клиенте, либо в базе данных либо ещё в каком внешнем хранилище, то сервер будет считаться stateless
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868205
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Где не храни, сервер назначает id session.
Значит хранит состояние.
Сессия есть сервера, есть клиента и есть у хибера своя.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868298
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpГде не храни, сервер назначает id session.
Значит хранит состояние.Заблуждение: идентификатор сеанса - всего лишь ключ, который позволяет извлечь необходимые данные из внешнего хранилища.
В результате, серверу требуется обрабатывать состояние сотен (тысяч) активных сеансов, а не все миллионы, которые "когда-то были".
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868302
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovPetroNotC SharpГде не храни, сервер назначает id session.
Значит хранит состояние.Заблуждение: идентификатор сеанса - всего лишь ключ, который позволяет извлечь необходимые данные из внешнего хранилища.
В результате, серверу требуется обрабатывать состояние сотен (тысяч) активных сеансов, а не все миллионы, которые "когда-то были".а я что другое сказал?
Это число.
И у хибера число, ключ, маркер. И у контейнера.
Могу проще для тебя сказать. Он тебя запоминает)
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868309
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpа я что другое сказал?Да. Вы утверждали, что состояние хранит сервер.
Я утверждаю, что сервер или создаёт сеанс (для вновь прибывших) или получает идентификатор сеанса (от ранее посещавших) и работает с состоянием активных сеансов. По мере надобности это состояние сохраняется во внешнем хранилище.
С моей кочки зрения, вы мешаете в одну кучу сервер приложений и ту инфраструктуру, с которой этот сервер работает.
С моей кочки зрения, вы усугубляете непонимание, используя СМС-стиль общения за который, обычно, хочется просто убить. Поскольку это невозможно, то, обычно, приходится просто не общаться.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868313
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovДа. Вы утверждали, что состояние хранит сервер.да. Так как состояние в ООП это даже просто поле с int.

Basil A. Sidorovили получает идентификатор сеансаid сеанса ослика не равен ид сеанса контейнера. В остальном верно.

Basil A. SidorovС моей кочки зрения, вы мешаете в одну кучу сервер приложений и ту инфраструктуру, с которой этот сервер работает.вы мешаете. Я разделил три сеанса. Хибера, контейнера и клиента.
А у вас непонятное слово. "получает".

Basil A. SidorovСМС-стиль общениякогда чел пишет что не понял, я расписываю. Тут у всех разное образование.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868317
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpсостояние в ООП это даже просто поле с int."Никогда и ничего не доводи до абсурда, ибо человек, желающий трапезовать поздно вечером, рискует трапезовать рано поутру".
Прочие ужимки лично я обсуждать не намерен.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868319
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovPetroNotC Sharpсостояние в ООП это даже просто поле с int."Никогда и ничего не доводи до абсурда, ибо человек, желающий трапезовать поздно вечером, рискует трапезовать рано поутру".
Прочие ужимки лично я обсуждать не намерен.ну задай вопрос про состояние на собесах.
Нет предмета для спора.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868536
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovPetroNotC SharpГде не храни, сервер назначает id session.
Значит хранит состояние.Заблуждение: идентификатор сеанса - всего лишь ключ, который позволяет извлечь необходимые данные из внешнего хранилища.
В результате, серверу требуется обрабатывать состояние сотен (тысяч) активных сеансов, а не все миллионы, которые "когда-то были".

Наверное тут соглашусь. То, что ключ назначает сервер, кстати, не значит, что он их должен хранить.он может и UuID использовать
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868559
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerНаверное тут соглашусь. То, что ключ назначает сервер, кстати, не значит, что он их должен хранить.он может и UuID использоватьпереведи.
Там нет никакой магии.
Ключ назначаемый сервером это просто число и метка времени.
1. Либо он их хранит где угодно для использования
2. Либо не хранит.
Другого не дано. Нельзя быть немножко беременным сервером.
Про UuID не понял.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868580
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerBasil A. Sidorovпропущено...
Заблуждение: идентификатор сеанса - всего лишь ключ, который позволяет извлечь необходимые данные из внешнего хранилища.
В результате, серверу требуется обрабатывать состояние сотен (тысяч) активных сеансов, а не все миллионы, которые "когда-то были".

Наверное тут соглашусь. То, что ключ назначает сервер, кстати, не значит, что он их должен хранить.он может и UuID использовать
Хранить-то его зачем?
Его главное сгенерировать так, чтобы никто подобрать не смог и получить доступ к чей-то сессии.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868581
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухЕго главное сгенерировать так, чтобы никто подобрать не смог и получить доступ к чей-то сессии.
Ну или сгенерировать тупо, но зашифровать надёжно :)
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868591
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerСудя по всему автор имел ввиду, что если хранить сессию на клиенте, либо в базе данных либо ещё в каком внешнем хранилище, то сервер будет считаться statelessИменно..

Великое множество сервисов в сети построены на горизонтальном масштабировании.
То есть запросы пользователей обслуживает не один, а три, пять, семь и более веб-серверов ( балансировка нагрузки ).
И в такой архитектуре встаёт вопрос как работать с информацией, которая должна быть сохранена в сессии пользователя и доступна всем его запросам.
Если она хранится локально на одной машине фермы, то все запросы должны идти туда же.
Этот подход называется липкие сессии (sticky session) - когда load balancer (к примеру HAProxy ) закрепляет пользователя за сервером, который обслужил его первый запрос.

Если же у нас stateless, то нам не надо делать дополнительных телодвижений, настраивать балансировщик нагрузки, а там есть свои нюансы.
И тем самым всё проще и надёжнее.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868730
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerНаверное тут соглашусь. То, что ключ назначает сервер, кстати, не значит, что он их должен хранить.он может и UuID использоватьпереведи.
Там нет никакой магии.
Ключ назначаемый сервером это просто число и метка времени.
1. Либо он их хранит где угодно для использования
2. Либо не хранит.
Другого не дано. Нельзя быть немножко беременным сервером.
Про UuID не понял.

Суть моей мысли в том, что если сервер даже генерирует некий идентификатор, то это совсем не значит, что ему его хранить надо. К тому же есть сомнения в том, что именно сервер всегда должен генерировать идентификатор сессии
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868807
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerСуть моей мысли в том, что если сервер даже генерирует некий идентификатор, то это совсем не значит, что ему его хранить надо.да. Пусть хранит в бд. Тебе легче?
Использует айди сессии все равно из бд опять сервер)))

questionerтому же есть сомнения в том, что именно сервер всегда должен генерировать идентификатор сессиида. Контейнер все делает)
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868853
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerВот что-то я не прочуял что именно значит сервер без состояния. И почему сохранение сеанса на стороне сервера не делает его stateful ?

Stateless это просто.

Stateless это севрис, на который если мы подаем одни и те же данные на вход, то получаем одни и те же ответы на выходе.
В не зависимости от окружения, фаз луны и прочего.

Грубо говоря.
Если на вход сервиса add(x,y) подаем x=2, y=2, то на выходе всегда будет 4.

Со statefull такого сказать нельзя. Там может быть все что угодно.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868870
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
Ну ты даешь).
Немного не так.
Это в первый раз в сервис подаешь х=2.
Во втрой раз у=2 И ОН ТЕБЯ ПОМНИТ)
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868876
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухНу или сгенерировать тупо, но зашифровать надёжно :) Это так не работает.
Идентификаторы сессия обязаны быть очень маленьким подмножеством, случайно выбранным из очень большого. Подможнество, возможно, следует "проредить" так, чтобы не было идентификаторов с последовательными значениями.
Если "тупо шифровать" последовательные значения, то потенциальный взломщик будет "тупо шифровать последовательные значения" и надёжно получать идентификаторы чьих-то сеансов.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868877
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulStateless это севрис, на который если мы подаем одни и те же данные на вход, то получаем одни и те же ответы на выходе.Идемпотентность - сильное условие, которое, обычно, завязано на стабильность внешнего состояния .
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868887
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharpmad_nazgul,
Ну ты даешь).
Немного не так.
Это в первый раз в сервис подаешь х=2.
Во втрой раз у=2 И ОН ТЕБЯ ПОМНИТ)

Нет, именно, что сервис ведет себя как "функция".

"ПОМНИТ" это значит есть состояние.

Но может быть по другому.
С одного "входа" идет x, а с другого "входа" идет y.
Например с веб-реквеста к нам прилетает "x", а "y" берется из БД.

Сам сервис stateless, т.е. он ведет себя одинаково при одинаковых данных.

Т.о. идет разделение ответственности.
Сервисы аккумулируют бизнес-логику, а состояние находиться в хранилищах данных, где бизнес-логики не должно быть.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868888
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovmad_nazgulStateless это севрис, на который если мы подаем одни и те же данные на вход, то получаем одни и те же ответы на выходе.Идемпотентность - сильное условие, которое, обычно, завязано на стабильность внешнего состояния .

Ну да. Ничего "бесплатно" не бывает.
Stateless легче писать и сопровождать, но нужно уделять больше внимания к хранению данных.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868892
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulНу да.Ну нет - "без состояния" ортогонально "воспроизводимости".
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868898
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulНо может быть по другому.
С одного "входа" идет x, а с другого "входа" идет y.
Например с веб-реквеста к нам прилетает "x", а "y" берется из БД.именно на этом акцент карл!
А ты выше написал, в одном запросе подаем
Сервис.умножить(2,2).
Это без состояния.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868900
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul"ПОМНИТ" это значит есть состояние.я и привел пример с состоянием.
Блин, такой простой вопрос и мусолим вторую страницу.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868941
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovДмитрий МухНу или сгенерировать тупо, но зашифровать надёжно :) Это так не работает.
Идентификаторы сессия обязаны быть очень маленьким подмножеством, случайно выбранным из очень большого. Подможнество, возможно, следует "проредить" так, чтобы не было идентификаторов с последовательными значениями.
Если "тупо шифровать" последовательные значения, то потенциальный взломщик будет "тупо шифровать последовательные значения" и надёжно получать идентификаторы чьих-то сеансов.
Почему тупо шифровать? Почему последовательные?
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868958
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЕсли "тупо шифровать" последовательные значения, то потенциальный взломщик будет "тупо шифровать последовательные значения" и надёжно получать идентификаторы чьих-то сеансов.

Помнится, была на Хабре статья что-то типа "Грабь награбленное". Там чуваки увидели, что на каком-то файлообменнике ID генерится последовательно, и накачали себе кучу интересного: фильмы, базы е-мейлов и все такое прочее.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868993
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sakчуваки увидели, что на каком-то файлообменнике ID генерится последовательноКлючевое - последовательно. Попытка рэндомизации путём шифрования или хэширования, принципиально, ничего не меняет.
Если же выбираются случайные значения из очень большого множества, то и шифровать их не требуется.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39868996
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий МухПочему последовательные?Потому, что "сгенерить тупо". Если все слова употреблены (вами) корректно, то получается последовательность. В простейшем случае - линейная функция (одного) монотонно растущего аргумента.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869262
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerСуть моей мысли в том, что если сервер даже генерирует некий идентификатор, то это совсем не значит, что ему его хранить надо.да. Пусть хранит в бд. Тебе легче?
Использует айди сессии все равно из бд опять сервер)))

questionerтому же есть сомнения в том, что именно сервер всегда должен генерировать идентификатор сессиида. Контейнер все делает)

Сервер ребутнули и состояние не потеряли, если сессию в базе храним.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869281
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerСервер ребутнули и состояние не потеряли, если сессию в базе храним.плюсы и минусы места хранения вообще не имеют отношения к вопросу.
Есть факт - сессия назначена контейнером (ОН ВАС ПОМНИТ И ДЕРЖИТ)
Противоположный факт - Не назначается сессия контейнером. Он узнаёт васю по зашифрованной строке от клиента "федя" С КАЖДЫМ НОВЫМ ЗАПРОСОМ на F5.
...
Все остальное это вариации от фактов выше.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869368
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerСервер ребутнули и состояние не потеряли, если сессию в базе храним.плюсы и минусы места хранения вообще не имеют отношения к вопросу.
Есть факт - сессия назначена контейнером (ОН ВАС ПОМНИТ И ДЕРЖИТ)
Противоположный факт - Не назначается сессия контейнером. Он узнаёт васю по зашифрованной строке от клиента "федя" С КАЖДЫМ НОВЫМ ЗАПРОСОМ на F5.
...
Все остальное это вариации от фактов выше.

я не согласен. кластерные приложения без стики сессион вполне себе работают.

Серверу нет нужды ничего помнить.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869388
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerСерверу нет нужды ничего помнить.
- верно, но тогда либо JWT, либо какие то велосипеды по хранению состояния в БД и т п.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869396
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
Добрались до кластеров. Еще есть сериализация сессии в бд. Потом рожать ее и базы.
Много чего есть.
Ты не запутывай простые вещи. Как в прошлом вопросе.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869417
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KachalovquestionerСерверу нет нужды ничего помнить.
- верно, но тогда либо JWT, либо какие то велосипеды по хранению состояния в БД и т п.

Тут как раз топик про то где хранить состояние. Если не на сервере(БД там или ещё чего), то сервер stateless. Точка.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869455
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
questioner,

В общем-то альтернатив традиционным сессиям немного.
1. Хранение данных в БД. Поднимаем эти данные при каждом запросе по некоему, как правило, секретному идентификатору. Недостатки - нагрузка на БД. Частично можно невелировать, если вместо обычной реляционной СУБД использовать специалбные дата-гриды типа Infinispan, Hazelcast и т.п. По сути распределенный кэш. При этом хранение состояния делегируется сервером приложений специализированному хранилищу, сам он остается stateless..
2. Хранить состояние на клиенте и передавать в куках при каждом запросе (или в заголовках, а хранить в local storage браузера). Из недостатков - безопасность и связанные с этим накладные расходы. Сервер не может доверять данным клиента, он должен как минимум их подписать. Есть и другие проблемы, например, сервер не может принудительно завершить сессию, а в дистанционном банковском обслуживании это важно, как пример. Вообще интересный подход, это чистый REST. Советую почитать про JWT .
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869458
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerЕсли не на сервере(БД там или ещё чего), то сервер stateless.
- Вы про сервер или про приложение?

questionerТут как раз топик про то где хранить состояние. Точка.
- помягче, "точки" лучше с женой искать, а не на форуме
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869504
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questioner,
С этим разобрался?
...
В книге (в 6 главе) расписывается, что иметь сервер без состояния это очень удобно, классно и всё такое. Пишут, что всегда старайтесь использовать сервер без состояния.

В какой-то момент пишут, что всё так хранить состояние надо. Например корзину юзера интернет магазина полюбому надо хранить.

и в конце написана фраза:

Хорошая новость заключается в том, что для реализации сеанса с состоянием, оказывается, можно применять сервер без состояния.

дальше по книге идёт описания способов хранения состояние сеанса : на клиенте, на сервер, в базе.

Вот что-то я не прочуял что именно значит сервер без состояния. И почему сохранение сеанса на стороне сервера не делает его stateful ?
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869505
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerТут как раз топик про то где хранить состояниеневерно.
Топик про то как интерпретировать ф
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869509
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глюки))
Топик про то как понять конкретну фразу фаулера.
А то уже пишут ОБЗОР с аналитикой всех вариантов хранения и плюс аутентификации.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869585
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovДмитрий МухПочему последовательные?Потому, что "сгенерить тупо". Если все слова употреблены (вами) корректно, то получается последовательность. В простейшем случае - линейная функция (одного) монотонно растущего аргумента.
амн, а последовательность-то откуда возьмётся? где будет храниться?
проще сгенерировать случайное число, или взять идентификатор пользователя

но даже если последовательность, то откуда взломщик вдруг узнает ключ и вектор шифрования?
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869657
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC SharpВот что-то я не прочуял что именно значит сервер без состояния. И почему сохранение сеанса на стороне сервера не делает его stateful ?

Сервер почти всегда statefull, т.к. будет хранить где-то состояние.
А вот сервисы в нем могут быть почти все stateless.
Где хранить состояние на сервере приложений.
Есть много вариантов. Например в memcached, по sessionId :-)
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869666
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulА вот сервисы в нем могут быть почти все stateless.все в руках программиста.
Services.startSession(idClients)
Serveces.setParamX(2
Services.setParamY(2
Services.getSUM()
Вариантов миллион чтобы делать обзор.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869770
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgulЕсть много вариантов. Например в memcached, по sessionId :-)


А Фаулер называет такой сервер stateless
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869825
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionermad_nazgulЕсть много вариантов. Например в memcached, по sessionId :-)


А Фаулер называет такой сервер statelessон писал про memcached?
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869847
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionermad_nazgulЕсть много вариантов. Например в memcached, по sessionId :-)


А Фаулер называет такой сервер stateless

Так и есть. Т.к. состояние находиться вне сервиса, но внутри приложения. :-)
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869875
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharpquestionerпропущено...



А Фаулер называет такой сервер statelessон писал про memcached?

Ага, называя его "другие внешние хранилища"
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39869928
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerАга, называя его "другие внешние хранилища"повторю.
Контейнер назначает сессию. Хранит пусть где угодно.
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39870119
questioner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC SharpquestionerАга, называя его "другие внешние хранилища"повторю.
Контейнер назначает сессию. Хранит пусть где угодно.
Повторю.

Не хранит значит stateless
...
Рейтинг: 0 / 0
Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
    #39870225
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
questionerПовторю.

Не хранит значит stateless
Если ты считаешь что это исчерпывающе и понятно, закрываем вопрос.
...
Рейтинг: 0 / 0
56 сообщений из 56, показаны все 3 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]