CGI на С++ и HTTP-сессий
увидел, что session-id уходит в запросе не в куках, а как отдельный параметр. Соответственно в CGI по идее его тоже можно как-то получать
(хотя в CGI нет такой переменной окружения из которой его можно достать).
Вопросы возникаю такие:
1. Как достать из запроса идентификатор сессии?
2. Если это новый посетитель, соответственно как открыть для
него новую сессию (назнчить ему session-id, чтобы в последующих
запросах этот id получать).
ид сессии хранится или в куках или в строке запроса... как посылать куку решает пхп... если ставится кука, то дальше уже работает сам апач или другой сервер (ставит куку) и браузер пользователя (посылает куку обратно).. если в строке, то пхп при выводе страницы дописывает ко всем ссылкам некоторую переменную...
с точки зрения пхп, он получает ид сессии или из переменной окружения cookie, или из строки запроса get... дальше он ищет файл у себя в темдире с таким именем, и там уже хранятся переменные самой сессии..
то есть если ты хочешь организовать подобие сессии на с++, то тебе надо:
0) сгенерить ид куки.. придумать метод хранения переменныхх. создать файл где их хранить.. ну и т. п.
1) проверить, можно ли юзеру послать куку (не запрещены ли они)
2) если можно, то послать.. использую стандартный заголовок установки куки.. ( ftp://ftp.rfc-editor.org/in-notes/rfc2109.txt http://rfc.net/rfc2965.html )
2а) если нельзя, то дописать ко всем ссылкам на странице ид..
3) дальше всё уже делает браузер.. он или будет посылать куку с твоим ид в каждом запросе, или переходить по ссылкам с дописанным ид
4) получаешь ид на сервере из переменных окружения.. а дальше уже работаешь с данными в соответствующем файле...
А куки действительно могут быть отключены, я поэтому и думал, что
возможно сессии это отдельный механизм не поверх куков.
-------------------------------------------------------
Хотя уже несколько раз видел на сайтах такую фразу -
"Для корректной работы сайта должны быть включены Cookies"
Видимо придётся у себя, что-нибудь подоюное написать :)
Цитата: bave
А куки действительно могут быть отключены, я поэтому и думал, что
возможно сессии это отдельный механизм не поверх куков.
:D
А как ты еще собираешься, то SID от сессии передавать?? Тут либо уж через урлу, либо куком.
Я не беру извращенные варианты через AJAX тянуть HTTP headers и писать в них:) , ибо требует JavaScript, а параноик отключивщий куки отрубит и жабу.