Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CGI на С++ и HTTP-сессий

279
18 ноября 2007 года
bave
456 / / 07.03.2004
Для связи запросов относящихся к одному пользователю понадобилось использовать механизм сессий. Вообще сессии до этого не использовал, просто слышал что они такое и зачем они. В поисковиках всё время натыкался на PHPшные примеры (на чём я пишу CGI видно из названия темы) - сначало решил, что сессии - это фишка скриптовых языков типа PHP, реализованная поверх куков. Но вот поставив HTTPAnalizer
увидел, что session-id уходит в запросе не в куках, а как отдельный параметр. Соответственно в CGI по идее его тоже можно как-то получать
(хотя в CGI нет такой переменной окружения из которой его можно достать).
Вопросы возникаю такие:
1. Как достать из запроса идентификатор сессии?
2. Если это новый посетитель, соответственно как открыть для
него новую сессию (назнчить ему session-id, чтобы в последующих
запросах этот id получать).
271
19 ноября 2007 года
MrXaK
721 / / 31.12.2002
насколько я помню, сессия это просто некая абстракция.. это просто удобный метод хранения данных..
ид сессии хранится или в куках или в строке запроса... как посылать куку решает пхп... если ставится кука, то дальше уже работает сам апач или другой сервер (ставит куку) и браузер пользователя (посылает куку обратно).. если в строке, то пхп при выводе страницы дописывает ко всем ссылкам некоторую переменную...
с точки зрения пхп, он получает ид сессии или из переменной окружения cookie, или из строки запроса get... дальше он ищет файл у себя в темдире с таким именем, и там уже хранятся переменные самой сессии..
то есть если ты хочешь организовать подобие сессии на с++, то тебе надо:
0) сгенерить ид куки.. придумать метод хранения переменныхх. создать файл где их хранить.. ну и т. п.
1) проверить, можно ли юзеру послать куку (не запрещены ли они)
2) если можно, то послать.. использую стандартный заголовок установки куки.. ( ftp://ftp.rfc-editor.org/in-notes/rfc2109.txt http://rfc.net/rfc2965.html )
2а) если нельзя, то дописать ко всем ссылкам на странице ид..
3) дальше всё уже делает браузер.. он или будет посылать куку с твоим ид в каждом запросе, или переходить по ссылкам с дописанным ид
4) получаешь ид на сервере из переменных окружения.. а дальше уже работаешь с данными в соответствующем файле...
279
20 ноября 2007 года
bave
456 / / 07.03.2004
Как-то в строке запроса передовать неохота...
А куки действительно могут быть отключены, я поэтому и думал, что
возможно сессии это отдельный механизм не поверх куков.
-------------------------------------------------------
Хотя уже несколько раз видел на сайтах такую фразу -
"Для корректной работы сайта должны быть включены Cookies"
Видимо придётся у себя, что-нибудь подоюное написать :)
12
20 ноября 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: bave

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


:D
А как ты еще собираешься, то SID от сессии передавать?? Тут либо уж через урлу, либо куком.
Я не беру извращенные варианты через AJAX тянуть HTTP headers и писать в них:) , ибо требует JavaScript, а параноик отключивщий куки отрубит и жабу.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог