Использование cookies в сценариях CGI

ispolzovanie cookies v scenariyah cgi Сценарии на стороне сервера

Чтобы помочь совместить все детали, описанные выше, в примере 15.16 приводится CGI-сценарий, который сохраняет cookies на стороне клиента при первом посещении и принимает и отображает его содержимое при последующих посещениях.

Пример 15.16. PP4E\Internet\Web\cgi-bin\cookies.py

создает или использует имя пользователя, сохраненное в cookies на стороне клиента; в этом примере отсутствуют данные, получаемые из формы ввода

import http.cookies, os

cookstr = os.environ.get("HTTP_COOKIE")

cookies = http.cookies.SimpleCookie(cookstr)

usercook = cookies.get("user") # извлечь, если был отправлен

if usercook == None: # создать при первом посещении

cookies = http.cookies.SimpleCookie() # вывести заголовок Set-cookie

cookies[‘user’] = ‘Brian’ print(cookies)

greeting = ‘<p>His name shall be%s</p>’ % cookies[‘user’] else:

greeting = ‘<p>Welcome back, %s</p>’ % usercook.value

print(‘Content-type: text/html\n’) # плюс пустая строка

print(greeting) # и фактическая разметка html

Если предположить, что вы используете локальный веб-сервер, представленный в примере 15.1, этот сценарий можно вызвать по адресу URL http://localhost/cgi-bin/cookies.py (введите его в адресной строке своего броузера или откройте его в интерактивном сеансе с помощью модуля urllib.request). При первом обращении к этому сценарию он установит cookies в заголовках ответа, и вы увидите в окне броузера такое сообщение:

His name shall beSet-Cookie: user=Brian

Затем при повторном обращении по этому же адресу URL сценария в том же самом сеансе работы с броузером (воспользуйтесь кнопкой Обновить (Reload)) страница ответа будет содержать следующее сообщение:

Welcome back, Brian

Это объясняется тем, что при повторном обращении к сценарию клиент отправляет сохраненные ранее значения cookies обратно сценарию, по крайней мере, пока вы не закроете броузер и не перезапустите его вновь — по умолчанию срок действия cookies ограничивается продолжительностью сеанса работы с броузером. В реальных обстоятельствах такая схема может использоваться страницей входа в веб-приложение — пользователю достаточно будет пройти процедуру входа только один раз в течение одного сеанса работы с броузером.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий