Куки и сессии, как они взаимосвязаны?

Статус
В этой теме нельзя размещать новые ответы.

sultan347

Участник
Регистрация
25 Апр 2009
Сообщения
230
Реакции
7
Добрый вечер.
Пытаюсь понять их...
Куки, это текстовые файлы, размещенные в компьютре в директории Documents and Settings\User\Local Settings\Temporary Internet Files
Вот, например куки моего сайта:
Код:
PHPSESSID
ba628thj1530e1961c279ca8df578432
www.site.ru/
2647
1412060160
30006790
1508897472
30006593
*
А сессии что такое? Из : Сессия - 128 битное число. Если юзер пришел на сайт впервые, пхп видит это, и присваивает случайное число. Там написано, что оно хранится в сервере где то файле.
Ну и вопрос, как они связаны между собой?
 
Добрый вечер.
Пытаюсь понять их...
Куки, это текстовые файлы, размещенные в компьютре в директории Documents and Settings\User\Local Settings\Temporary Internet Files
Вот, например куки моего сайта:
Код:
PHPSESSID
ba628thj1530e1961c279ca8df578432
www.site.ru/
2647
1412060160
30006790
1508897472
30006593
*
А сессии что такое? Из *** скрытое содержание ***: Сессия - 128 число. Если юзер пришел на сайт впервые, пхп видит это, и присваивает случайное число. Там написано, что оно хранится в сервере где то файле.
Ну и вопрос, как они связаны между собой?
если вкратце то сессии хранятся на стороне СЕРВЕРА, а кукисы как ты уже сказал хранятся на стороне КЛИЕНТА. т.е. нужно тебе сохранить информацию о пользователе ты можешь ее положить в сессию, когда прийдет юзер на сайт сново ты по ИД сессии востановишь данные которые хранятся у ТЕБЯ на сервере касат, касательно этого юзверя и будешь их юзать - в твоем примере это счетчик 128 - а кукисы хранятся на стороне клиента - когда человек приходит на сайт он шлет тебе на сервер инфу, типа в прошлый раз ты у меня сохранил то и то, вот на возьми и сервер востанавливает эту инфу которую получает он от клиента.
 
идентификатор сессии может храниться в куках (и чаще всего там хранится) - вот такая между ними связь
 
Куки и сессии, как они взаимосвязаны?
Куки - файлы на стороне клиента.
Сессии - файлы на стороне сервера.

К какому пользователю какая сессия относится, определяется по id сессии, который записывается пользователю в куки.
 
Куки - файлы на стороне клиента.
Сессии - файлы на стороне сервера.
К какому пользователю какая сессия относится, определяется по id сессии, который записывается пользователю в куки.
вообщем у меня 4 сайта, 3 которых написано с руки, 1 инет-магазин shopcms. Сервер один, а ведут себя по разному. Осн проблема - сессии долго не сохраняются, если полчаса после авторизации остаешся не активным в сайте, вышибает из аккаунта. Хотя из моего примера видно, что в куки записывается идентификатор сессии:
Код:
PHPSESSID
ba628thj1530e1961c279ca8df578432
www.site.ru/
2647
1412060160
30006790
1508897472
30006593
*
Здесь 1,2 строка понятно как раз идентификатор сессии, 3 строка - домен сайта, а вот 4-8 для чего? 9-звездочка наверно означает конец.

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

Сессии - если нужно хранить краткосрочную инфо о юзере и его действиях (например когда в интернет магазине человек ложит что либо себе в корзину)
Кукисы - когда нужно хранить информацию о юзере долго ( например на форуме, чтобы когда человек приходил он был уже залогинен автоматом)

Но кукисам тоже можно настраивать время истечения, а можно и поставить чтобы никогда не удалялись.

имхо, что написано в самом файле кукиса понимать незачем, нужно понимать как оно работает и как с ними работать ;)

а в принципе, чисто логически можно догадаться что в них хранится идентификатор и переменные :p
 
Сервер убивает сессию - но это настраиваемо, можно продлить или уменьшить время этой самой сессии. Можно настроить и так, что сессия убивается когда юзер уходит.
смотрел php.ini
Там, параметр
Код:
session.cookie_lifetime = 84600
session.gc_maxlifetime = 84600
, то есть это почти сутки, а так в реале сессии хватает на полчаса, что-то нето. Зато
Код:
;session.save_path = "/tmp"
закоментирован. Может из-за этого вообще не пишется в сервере? Как наз-ся файл сессии на сервере, и где он примерно лежит, чтобы убедится, что они на самом деле есть и попытатся сравнить с куками?
 
в сервере в php.ini параметры
Код:
session.cookie_lifetime = 5000000
session.gc_maxlifetime = 5000000
и в скрипте в setcokie время действия куки тоже
Код:
time()+5000000
по 5 млн поставил. Посмотрим. Только так правильно? В некоторых местах пишут, что максимально можно только 604800....
 
Я в этом вопросе больше теоретик :(

Время сессии можно указать в самом пхп коде, а то что в php.ini это наверно то что по дефаулту - если не указано в самом пхп коде.
Хотя... может есть и лимит :|

Возник вопрос, а зачем собственно вам так интересно узнать что значат циферки и буковки в самом файлике, в котором хранится инфа о сессии?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху