Cookies

Протокол HTTP сам по себе не обладает никакими механизмами для организации сессий. Иными словами, ни сервер, ни клиент никак не используют результаты диалога между собой при возможных последующих взаимодействиях.
Это затрудняет разработку сложных веб-приложений, реализующих многошаговые интерфейсы взаимодействия с пользователем. Программист вынужден самостоятельно заботиться о передаче необходимых параметров с текущего шага работы на следующий, например, при помощи скрытых полей веб-форм.
Cookies («печеньица») — технология, разработанная компанией Netscape и позволяющая серверу сохранять на машине клиента некоторые данные для их использования при повторном обращении данного конкретного клиента к данному серверу.
Cookies дают возможность в определенной мере преодолеть описанный выше недостаток протокола HTTP, но использовать их как единственное решение в ответственных целях связано с риском вследствие того, что cookies не являются штатной возможностью протокола HTTP.
Принцип работы механизма cookies заключается в следующем.
Веб-сервер в составе заголовка сообщения ответа отправляет клиенту расширенное поле Set-Cookie с указанием имени и значения параметра, который браузеру надлежит сохранить для дальнейшей работы:
Set-Cookie: параметр=значение; expires=дата; path=путь
(Элементы expires, path являются необязательными; допускаются еще некоторые необязательные составляющие, рассматривать которые здесь мы не будем.)
Элементы параметр и значение — любые текстовые строки, не превышающие по длине 4 Кбайт (в сумме) и не содержащие символов точки с запятой, пробела, табуляции, перевода строки и возврата каретки.
Элемент expires устанавливает дату и время истечения срока хранения cookie в формате, оговариваемом в RFC 850, например:
Wednesday, 01-Mar-06 00:00:00 GMT
Если дата не указывается, cookie действителен только в рамках текущего сеанса работы.
Элемент path определяет диапазон URL, для которых действителен cookie (начиная с какого-либо подкаталога), например: path=/data. Если path не указан, cookie действителен только для текущего URL. Если указывается: path=/, соответствующий cookie относится ко всем ресурсам данного веб-узла.
Браузер сохраняет переданные сервером данные на локальном жестком диске (Internet Explorer 6.0 под управлением Windows 2000 по умолчанию размещает их в папках C:\Documents and Settings\имя_пользователя\Cookies в виде файлов простого текстового формата).
Примечание
Бытует расхожее мнение, будто бы сохранение данных, полученных от удаленных узлов, на локальном жестком диске небезопасно. Эту точку зрения, однако, вряд ли стоит считать обоснованной. Ни о каком контроле локальной файловой системы удаленным сервером не может идти и речи — браузер сохраняет переданные параметры в строго определенных файлах строго определенного формата. Это практически ничем не отличается от сохранения браузером своих собственных внутренних настроек в каких-либо временных файлах.
При повторном обращении к URL, для которого существуют сохраненные cookies, браузер отправляет серверу в заголовке сообщения запроса поле вида:
Cookie: параметр_1=значение_1; параметр_2=значение_2; ...;
параметр_N=значение_N
Получив эти данные (о том, как это сделать, мы будем говорить в главе 4) обработчик на стороне сервера сможет «вспомнить», о чем он «договаривался» с клиентом в прошлый раз.
Клиент, поддерживающий cookies, обязан обеспечивать хранение не менее 300 записей подобного рода. При этом количество cookies для одного сервера (идентифицируемого доменным именем или IP-адресом) не должно превышать 20. Веб-разработчикам надлежит придерживаться этих ограничений, хотя в действительности многие браузеры предоставляют солидный запас.


© 2008-2018 ОптимизацияВебСайтов.ру


Любое использование текстового и графического контента сайта без активной ссылки на источник не доскается.