Хотите понять авторизацию, куки, логины пользователей, сессии - PullRequest
6 голосов
/ 13 мая 2010

Я хочу понять логику авторизации, куки, логины пользователей, сессии ... Вы знаете любой источник, который объясняет и учит меня этому. Если бы он мог привести какие-либо примеры, это было бы здорово. Я в основном использую php, jsp, но если вы дадите ответ, связанный с другими языками, проблем не будет.

1 Ответ

9 голосов
/ 13 мая 2010

cookie в основном используется для поддержания некоторого состояния на стороне клиента между запросами в конкретном домене и / или пути. Сеанс в основном используется для поддержания некоторого состояния на стороне сервера между запросами в конкретном домене и / или пути.

Сессия обычно поддерживается файлом cookie. В PHP это файл cookie с именем PHPSESSID, а в JSP это файл cookie с именем JSESSIONID. Оба содержат длинное уникальное автоматически сгенерированное значение.

На стороне сервера есть соответствие между значением cookie и всеми прикрепленными объектами сеанса в памяти. При каждом запросе он проверяет значение cookie в заголовке запроса и выявляет прикрепленные объекты сеанса из сопоставления, используя значение cookie в качестве ключа. При каждом ответе он записывает значение cookie в заголовок ответа. Клиент, в свою очередь, возвращает его обратно в заголовок последующих запросов до истечения срока действия файла cookie.

Что касается авторизации / входа в систему, вы можете поместить зарегистрированный объект User в сеанс на стороне сервера и проверять каждый запрос, если он есть, и обрабатывать его соответствующим образом. При выходе из системы вы просто удаляете объект User из сеанса или аннулируете сеанс. В PHP вы можете получить доступ к сеансу $_SESSION, а в Java / JSP - HttpServletRequest#getSession().

Принцип одинаков для всех других языков веб-программирования.

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