Что такое php session_id? - PullRequest
       1

Что такое php session_id?

1 голос
/ 01 сентября 2010

Я понимаю вещь $_SESSION и использую ее, но что такое session_id на самом деле и что это дает? Я не понимаю, можете ли вы дать мне руку? Спасибо.

Ответы [ 3 ]

7 голосов
/ 01 сентября 2010

Ну, вам нужен небольшой урок по веб-технологиям в целом.

Используемый нами протокол HTTP с именем без состояний .Означает, что он никогда не отслеживает запросы.Даже если вы нажмете несколько ссылок на сайте, каждый запрос будет новым, как если бы не было предыдущих.Нет возможности отличить запросы от одного и того же клиента.

Таким образом, если мы хотим различать клиентов, мы должны как-то «пометить» их.Присвойте некоторый уникальный идентификатор и заставьте их отправлять его при каждом запросе.Таким образом, ваш идентификатор сеанса это тот знак.Когда вы начинаете сеанс в первый раз, файл cookie отправляется вместе с ответом сервера.Хороший клиент всегда отправляет все куки обратно с каждым последующим запросом.Итак, мы можем узнать этого клиента.

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

6 голосов
/ 01 сентября 2010

session_id() возвращает значение файла cookie сеанса по имени, возвращенному из session_name().session_id() обычно является очень длинным хэшем, который уникален для клиента.

PHP может внутренне реализовать настройку cookie клиента следующим образом:

setcookie( session_name(), session_id() );
0 голосов
/ 01 сентября 2010

Я рекомендую вам прочитать ссылку Session на php.net .Вы можете получить идентификатор сеанса с помощью session_id().Это значение генерируется PHP.

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