понимание механизма сессий

440hz

php.ru
убейте меня апстену.
ага ...

ИМХО: под "сессией" подразумевается уникальный идентификатор, позволяющий серверу различать клиентов. а уж как этот идентификатор передается от клиента к серверу другой разговор. хоть через куки хоть через параметры.

бду признателен, если мне дадут другое определение сессии.
 

Фанат

oncle terrible
Команда форума
круто.
а идентификатор сессии, получается, это идентификатор уникального идентификатора.
 

440hz

php.ru
Автор оригинала: Фанат
круто.
а идентификатор сессии, получается, это идентификатор уникального идентификатора.
=)

часто под сессией подразумевают именно ее идентификатор. буду теперь более внимательнее. спасибо.

а есть где-нить точное определение "сессии"? распечатаю и повешу себе перед лицом.
 

Фанат

oncle terrible
Команда форума
точное определение слова "сессии" в пхп означает механизм сессий, который был придуман для сохранения состояния пользователя во время сеанса работы с сайтом.

Понятие сеанса очень простое - это единовременное посещение. Кинотеатра, или массажиста. или сайта. посмотрел кино, поработал с сайтом - сеанс. посмотрел другое кино, поработал с сайтом в другой раз - снова сеанс.

Механизм сессий не зря был придуман для поддержски именно сеансов. А не бессрочного сохранения состояния. поскольку механизм бессрочного сохранения состояния уже существовал - это куки.

Исходя из задач, для которых механизм сессий создавался, мы получаем и его особенности.
А именно: сохранение состояния гарантируется только для сеанса - не дольше. Поскольку дсид, переданный в урле, не сохраняется после закрытия браузера.
механизм хранения пользовательских данных так же рассчитан только на хранение сеансовых данных, а никак не долгосрочное.

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

440hz

php.ru
Но только не надо называть это сессиями.
сессия = сеанс? я правильно понимаю?
а сеанс заканчивается когда клиент закрыл броузер?

единовременное это одна страница или все-таки n-страниц за какой-то период? тогда почему это единовременное?

а вообщем спасибо. просветляет ...
 

Фанат

oncle terrible
Команда форума
Давай только определимся.
ты хочешь что-то узнать, иди найти дырку в моём определении.

если первое - ответ да.
если второе - ответ тоже да.

-~{}~ 11.10.06 17:10:

единовременное - это пока клиент не закрыл броузер.

Дело в том, что, как и большинство механизмов в веб, конечно же, у сессий есть куча течёткостей.
к примеру, может быть два окна, открытых друг из друга. одно закрыл - во втором сессия жива.
или ссылку с сидом занёс в закладки, браузер закрыл - сессия ожила.
Браузер не закрывал, но 24 минуты сайт не дёргал - сессии нет.
то есть, если требовать чёткого определения, то всегда можно найти дырку.
Но дело не в этом. Не в том, что сессия гарантирует или не гарантирует.
А в том, для чего она придумывалась. а придумывалась она именно для обеспечения сеанса.
 

440hz

php.ru
ты хочешь что-то узнать
конечно. искать "дырки" - не о том говорим вообще. мы ж не дети ... =)
А в том, для чего она придумывалась. а придумывалась она именно для обеспечения сеанса
а не сложно будет тебе сформулировать это определение "сеанс? думаю всем от этого будет понятнее. мне так точно.

спасибо.

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

так же механизмов передачи может быть нескольк, куки, параметры, может чего еще придумают. ...
 

Фанат

oncle terrible
Команда форума
440hz
Ты понимаешь, что такое киносеанс?

-~{}~ 12.10.06 15:55:

продолжаем разговор
 

Superman

Новичок
в общем, получается что сессия -- это киносеанс.
при входе вы покупаете билет (идентификатор сессии) на киносеанс (фиксированное время), по окончании киносеанса (окончание фиксированного времени) он более не действителен, разве что если нет спец. акций в этом кинотеатре вроде "билет годен на два сеанса!" (другое фиксированное время).

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

-~{}~ 12.10.06 17:28:

да, кстати, фиксированное время наверное неправильно, кто поправит? :)
 

baev

‹°°¬•
Команда форума
Я б аналогию не с кино проводил, а с московским метро: вошёл по билету на одну поездку и катайся сколько хочешь, пока метро не закроется.
 

dr-sm

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

да и сессия != сеанс. в уэбе то все по схеме запрос->ответ работает.
ну и получается, что сеанс работы, это как бы группа действий, в которой промежуток времени между соседними, не превышает какого-то заданного значения.
и если нам для всего сеанса необходимо хранить какие-то данные, то используем механизм сессий.
 

440hz

php.ru
опять повторюсь, но с поправками ...

с чем мы все-таки имеем дело говоря "сессия"?

- уникальный идентификатор сессии (он же SID)
- методы передачи SID клиент-сервер (параметры|куки)
- время жизни SID
- хранение SID и возможность привязки произвольных данных к нему.

ИМХО чаще всего говоря "сессия" мы подразумеваем комплекс мер (тут уточнить), позволяющий серверу (скрипту/системе) идентифицировать клиента на протяжении какого-то периода времени (сеанса) и возможность хранения произвольных данных для каждого клиента.

---

автологин.

ИМХО суть автологина сводится к тому, что бы привязать конкретного пользователя к сессии (сеансу). тут два варианта. или сделать время жизни сессии достаточным для решения этой задачи или использовать механизм кук для запоминания какой-то уникальной для пользователя информации и при получении этих данных привязывать пользователя к текущей сессии.
 

Фанат

oncle terrible
Команда форума
чем мы все-таки имеем дело говоря "сессия"?
если мы говорим слово "сессия" грамотно, то имеем в виду только две вещи:
1. сеанс работы пользователя с сайтом
2. Встроенный в пхп механизм обеспечения сохранения состояния в течение сеанса.
 

Gorynych

Посетитель PHP-Клуба
все же влезу :)

сессия (от англ. session ~ сеанс) - это, конечно же, сеанс работы пользователя с сайтом.

понятие "сессия" или "сеанс работы пользователя" не уникально для PHP и реализовано во многих языках/технологиях веб-программирования.

все остальное: уникальный идентификатор, методы его передачи, время жизни, способы хранения данных и т.п. - особенности реализации механизма сессий или сеанса работы пользователя в PHP
 

Фанат

oncle terrible
Команда форума
у всех остальных составляющих ведь есть свои собственные имена: уникальный идентификатор сессии - это не сессия, а её уникальный идентификатор.
способы передачи- это не сессии, и а соверешнно самостоятельные поля НТТР запросов. с какой стати, к примеру, наызвать ГЕТ запрос сессией?
время жизни сессии - это не сессия ,а время жизни сессии.

Кстати, механизм сессий - туда же. Это не сессия, а механизм сессий.
Так что, из тех двух определений, которые я дал, остаётся только первое.
 

440hz

php.ru
Фанат

дошло!

сессия == сеанс
+ называем своими именами все остальные определения.

спасибо.

p.s. пойду на выходных с женой на сессию в кино ... а интересно у нас с женой будут разные сессии или жена это данные, которые я в сессии храню ... гы! или я то же данные, которые сессия хранит?
 

Gorynych

Посетитель PHP-Клуба
...а интересно у нас с женой будут разные сессии
- это зависит от особенностей реализации в выбранном кинотеатре. Возможно, в рамках сеанса Вам с женой покажут разные фильмы. Но идентификаторы (билеты) у каждого будут точно разные/уникальные.
 
Сверху