| Куки (Cookies) | Previous Home Next |
| Введение |
| Давайте вспомним, каким образом мы можем передавать 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. |