Китайский перевод сеанса называется «разговор», и его первоначальное значение относится к серии действий/сообщений, имеющих начало и конец. Например, при телефонном звонке — это серия процессов от поднятия трубки до завершения. дозвон до завершения разговора можно назвать сеансом. Текущее понимание сеанса в обществе очень запутано: иногда мы можем видеть слова «Во время сеанса браузера...», здесь сеанс относится к периоду от открытия до закрытия окна браузера, вы также можете увидеть, когда; ссылаясь на предложение «пользователь (клиент) во время сеанса», оно может относиться к серии действий пользователя (обычно серии действий, связанных с определенной целью, например, от входа в систему до покупки товара и оформления заказа). Однако такой процесс онлайн-покупок иногда может относиться только к соединению; разницу можно определить только из контекста.
Однако, когда слово «сеанс» связано с сетевым протоколом, оно часто подразумевает «ориентированное соединение». и/или «Сохранить состояние» имеют два значения. «Ориентация на соединение» означает, что стороны связи должны сначала установить канал связи, прежде чем общаться, например, сделать телефонный звонок. Связь не может начаться, пока другая сторона не ответит на звонок. «Статус» означает, что общающаяся сторона может связать серию сообщений так, чтобы сообщения могли зависеть друг от друга. Например, официант может распознать старого клиента, который приходит снова, и вспомнить, что клиент в прошлый раз был должен магазину доллар Примерами одного типа являются «сеанс TCP» или «сеанс POP3».
Учитывая, что эта путаница необратима, трудно иметь единый стандарт для определения сеанса, и когда мы читаем о сеансе, у нас есть только один. можно понять это, вытекая из контекста: например, когда мы звоним по телефону, с момента звонка до момента, когда мы вешаем трубку, телефон остается подключенным, поэтому это состояние подключения называется сеансом. Это общедоступный сеанс. переменная, которая всегда существует во время взаимодействия между посетителем и всем веб-сайтом. Если клиент не поддерживает COOKIE, для обеспечения точности и безопасности данных посетителю, посещающему веб-сайт, будет присвоена переменная сеанса. так называемый идентификатор сеанса. Он либо хранится в файле cookie клиента, либо передается через URL-адрес.
Изобретение сеанса устраняет ограничения протокола HTTP: протокол HTTP считается протоколом без сохранения состояния и не может знать статус просмотра пользователя, когда он используется. После того, как сервер завершает ответ, сервер теряет связь с браузером. Это соответствует первоначальной цели протокола HTTP. Клиенту нужно просто запросить у сервера загрузку определенных файлов, а не у клиента или сервера. серверу необходимо записывать прошлое поведение друг друга, причем каждый запрос независим, так же, как отношения между покупателем и торговым автоматом или обычным (нечленским) гипермаркетом.
Поэтому через сеанс (cookie) это другое. Решение) записывает соответствующую информацию пользователя для подтверждения, когда пользователь снова делает запрос к веб-серверу. Изобретение сеансов позволяет пользователю сохранять свою информацию при переключении между несколькими страницами. При этом переменные на каждой странице. нельзя использовать на следующей странице (хотя form и url тоже можно реализовать, но это очень неудовлетворительные методы), а переменные, зарегистрированные в Session, можно использовать как глобальные переменные.
Так в чем же польза сеанса? Каждый пользовался корзиной при совершении покупок в Интернете. Вы можете добавить выбранные вами товары в корзину в любое время и, наконец, перейти к кассе, чтобы оформить заказ. В течение всего процесса корзина покупок выполняла роль временного хранилища выбранных продуктов. Она используется для отслеживания действий пользователя на веб-сайте. Это роль сеанса. Ее можно использовать для аутентификации личности пользователя и статуса программы. запись и между страницами передача параметров и т. д.
Технология COOKIE используется при реализации сеанса. Session сохраняет COOKIE, содержащий Session_id (номер сеанса) на стороне клиента; сохраняет другие переменные сеанса на стороне сервера, такие как Session_name и т. д. Когда пользователь запрашивает сервер, Session_id также отправляется на сервер. Извлекая переменные, сохраненные на стороне сервера, через Session_id, вы можете определить, кто является пользователем. В то же время нетрудно понять, почему Session иногда выходит из строя.
Когда клиент отключает COOKIE (нажмите «Инструменты» — «Свойства обозревателя» в IE, выберите пункт «Безопасность» — «Пользовательский уровень» во всплывающем диалоговом окне и установите для параметра «Разрешить COOKIE для каждого разговора» значение отключено), Session_id не будет передан, и сессия в это время будет недействительной. Однако php5 может автоматически проверять статус файлов cookie на платформе Linux/Unix. Если клиент отключен, система автоматически добавит Session_id к URL-адресу и передаст его. Хосты Windows не имеют этой функции.
Общие функции и использование сеанса
Session_start(): Запуск сеанса или возврат существующего сеанса.
Примечание. Эта функция не имеет параметров, и возвращаемое значение истинно. Если вы используете сеансы на основе файлов cookie, браузер не должен иметь никаких выходных данных перед использованием Session_start(), в противном случае произойдет следующая ошибка:
Предупреждение: невозможно отправить ограничитель кэша сеанса — заголовки уже отправлены (вывод начинается с /usr/local/apache/ htdocs/cga/member/1.php:2)...
Вы можете запустить Session.auto_start=1 в php.ini, чтобы вам не приходилось каждый раз вызывать Session_start() перед использованием Session. Но есть некоторые ограничения на включение этой опции. Если Session.auto_start действительно включен, вы не можете помещать объекты в сеанс, поскольку определение класса должно быть загружено перед запуском сеанса, чтобы воссоздать объект в сеансе.
Все зарегистрированные переменные будут сериализованы после завершения запроса. Переменные, зарегистрированные, но не определенные, помечаются как неопределенные. Эти переменные также не определяются модулем сеанса при последующих обращениях, если только пользователь не определит их позже.
Некоторые типы данных не могут быть сериализованы и, следовательно, не могут быть сохранены в сеансе. Включая переменные ресурса или объекты с циклическими ссылками (то есть объект передает ссылку на себя другому объекту).