Cookie в Ruby CGI
Протокол HTTP — это протокол без сохранения состояния. Но коммерческому веб-сайту необходимо поддерживать информацию о сессии между разными страницами.
Например, когда пользователю нужно переходить между страницами во время процесса регистрации на веб-сайте, необходимо гарантировать, что ранее заполненная информация не потеряется.
В этом случае Cookies помогают нам очень хорошо решить проблему.
Как работают Cookies?
Почти все дизайнеры веб-сайтов используют Cookies при разработке сайтов, потому что все они хотят предоставить пользователям, просматривающим сайт, более дружелюбную, человечную среду просмотра и в то же время точнее собирать информацию о посетителях.
Запись и чтение
Коллекция Cookies — это коллекция данных, прикреплённая к объекту Response и объекту Request. При использовании нужно указывать перед ней префикс Response или Request.
Синтаксис, используемый для отправки Cookies клиенту, обычно выглядит так:
При установке коллекции Cookies, которой не существует, она создаётся на клиентской машине. Если коллекция Cookies уже существует, она будет заменена. Поскольку Cookies отправляются клиенту как часть информации заголовка HTTP-передачи, код отправки Cookies клиенту обычно размещается перед тегом `<HTML>` HTML-файла, отправляемого в браузер.
Если пользователь хочет прочитать Cookies, он должен использовать коллекцию Cookies объекта Request. Использование: Обратите внимание, что браузер может обмениваться данными коллекции Cookies с сервером только до того, как сервер загрузит какие-либо данные в браузер. Как только браузер начнёт получать данные, загруженные сервером, обмен данными Cookies прекращается. Чтобы избежать ошибок, добавьте `response.Buffer=True` перед программой и тегом `<HTML>`.
Свойства коллекции
- 1. Свойство Expires:Это свойство используется для установки периода для Cookies. В течение этого периода, пока веб-страница открыта, можно обратиться к сохранённым Cookies. Если этот период превышен, Cookies автоматически удаляются. Например: установите срок действия Cookies до 1 апреля 2004 года, и тогда они будут автоматически удалены. Если для Cookie не установлен срок действия, его жизненный цикл начинается при открытии браузера и заканчивается при закрытии браузера. После каждого запуска жизненный цикл заканчивается, а следующий запуск начинается заново.
- 2. Свойство Domain:Это свойство определяет уникальность данных, передаваемых Cookies. Если вы хотите отправлять Cookie только на главную страницу Sohu, можно использовать следующий код:
- 3. Свойство Path:Оно определяет, что Cookies отправляются только в запросах к указанному пути. Если свойство Path не задано, используется путь приложения по умолчанию.
- 4. Свойство Secure:Указывает, могут ли Cookies быть прочитаны пользователем.
- 5、Name=Value : Cookies задаются и извлекаются в виде пар ключ-значение.
Работа с Cookies в Ruby
Вы можете создать объект с именем cookie, сохранить текстовую информацию, отправить эту информацию в браузер и вызвать CGI.out для установки заголовка cookie:
Пример
Затем мы возвращаемся на эту страницу и ищем значение cookie, как показано ниже:
Пример
Когда объект CGI::Cookie создаётся, он содержит следующие параметры:
| Параметр | Описание |
|---|---|
| name | Указывает имя cookie. |
| value | Указывает значение cookie. |
| expire | Указывает срок действия cookie. |
| path | Указывает серверный путь cookie. |
| domain | Указывает домен cookie. |
| secure | Указывает, передаётся ли cookie через защищённое соединение HTTPS. |