15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту

Delphi >>> Сетевое программирование

Программирование CGI в Delphi и Kylix

Автор: Paul TOTH
Перевод с французского: Valery Votintsev

Содержание:


Куки (Cookies)

Введение

Давайте вспомним, каким образом мы можем передавать CGI-программе параметры.
При использовании метода GET параметры передаются в строке URL.
При использовании метода POST параметры передаются отдельно и не видны пользователю.
(отметим также, что в Internet Explorer 3 есть ошибка, из-за которой он ТЕРЯЕТ параметры при нажатии кнопки "Обновить").
Таким образом, нам не хватает возможности хранить информацию о передаваемых параметрах.

Что такое Cookie ?

"Cookie" - это небольшая порция информации, которая сохраняется на компьютере пользователя и привязана к конкретному URL. Когда браузер обращается к данному URL, он передает на удаленный сервер этот блок информации. В результате на сервере будет сформирована строка окружения HTTP_COOKIE, в которой содержится список всех cookies, которые относятся к данному URL.

Перменная окружения HTTP_COOKIE будет содержать пары имен/значений параметров, разделенных символом ";" в следующем виде:
имя1=значение1;имя2=значение;...

Таким образом мы можем задавать сразу несколько параметров в одном cookie для данного URL.

Как создать Cookies ?

Давайте разберемся, как это делается! Для создания куков достаточно использовать HTTP-заголовок. Вспомним, каким образом задается тип передаваемого документа в заголовке:
  Content-type: text/html
Точно таким же образом в заголовке задаются и cookie! Просто добавляем еще одну строку:
  Content-type: text/html
  Set-Cookie: Name=Value
Таким образом, к примеру, можно сохранить на компьютере пользователя его имя и пароль, необходимые для входа на защищенный сайт или защищенную страничку. Многие сайты запрашивают у пользователя имя и пароль, передают их по методу POST, и затем сохраняют на компьютере полдьзователя в виде cookie.

Пример использования Cookies

По просьбам читателей я сделал программу Cook, демонстрирующую, как использовать cookies для авторизации пользователя.
В архиве COOK.ZIP находится самая последняя версия моего модуля CGI и модуль Base64.

Дополнительная информация

Более подробную информацию о Cookies можно найти в спецификации от Netscape - Client Side State - HTTP Cookies