powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
25 сообщений из 56, страница 2 из 3
Фаулер. Как реализовать Сеанс(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
25 сообщений из 56, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Фаулер. Как реализовать Сеанс(Session) c состоянием при помощи сервера без состояния?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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