| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | R | S | T | U | V | W | X | Y |
| А | Б | В | Г | Д | К | Л | М | О | П | Р | С | Т | Ф | Х | Ц | Ч | Ш | Э | Ю | Я |
|
Сookie
— является решением одной из проблем HTTP-протокола (непостоянство соедения по НTTP, как например по FTP).
Грубо говоря, браузер, работая по HTTP, получает запрос от пользователя, после чего возвращает ответ, при следующем
запросе того же пользователя браузер будет воспринимать его как нового. Cookie позволило частично решить данную проблему. Используя Cookie можно эмулировать сессию по HTTP-протоколу. При каждом последующем запросе пользователя используется переменная окружения HTTP-COOKIE. Браузер хранит cookie и передает ее серверу с каждым запросом, как часть HTTP заголовка. Некоторые значения cookie хранятся только в течение одной сессии, и удаляются после закрытия браузера. Другие, установленные на заданный период, пишутся в файл, который обычно называется 'cookies.txt' и находится в директории браузера. Cookie - это небольшой объём именованных данных, связанных с определённой веб-страницей или веб-сайтом, который сохраняет браузер. В переводе с английского cookie - это печенье. Довольно сложно связать значение этого термина с его смысловой нагрузкой. Однако, появление термина cookie имеет некую историю. Термин cookie, а точнее 'magic cookie' в архивах компьютерной истории использовался для обозначения небольшой порции данных(по видимому здесь кроется ассоциация с печеньем), в частности, эти данные являлись секретными (например, пароль), служащие для подтверждения подлинности и разрешения доступа. Изначально cookies были разработанны в компании Netscape. По своей сути, cookies представляют собой память веб-браузера, позволяя сценариям и программам на стороне сервера на одной странице работать с данными, ранее введёнными пользователем на другой странице. Куки позволяет браузеру запомнить пользовательские параметры или иные состояния веб-страницы. Таким образом, вновь заходя на веб-страницу пользователю не придется задавать предпочтительные параметры заново. Куки реализованны как расширение протокола HTTP и передаются между браузером и сервером автоматически. Организовать работу с cookie можно с помощью javascript, php и других языков программирования. По умолчанию cookie передаётся по обычному протоколу HTTP, а следовательно как и HTTP является незащищённым. Далее объяснено, что передавать cookie можно и по защищённому соединению. Cookie - это строковое свойство, позволяющее читать, создавать, изменять и удалять cookies, связанные с веб-страницей. Помимо имени и значения каждый cookie имеет также четыре необязательных параметра: 1. Период хранения куки (expires, max-age); 2. Связь с веб-страницами (path); 3. Связь с доменом (domain); 4. Безопасность (secure) 1. Период хранения куки По умолчанию продолжительность жизни cookie коротка, а именно это период сеанса браузера. Т.е. после того, как пользователь закроет сеанс, записанные cookie с незаданным параметром expires или max-age будут удаленны. Для того, чтобы увеличить жизнь cookie и заставить cookie существовать после закрытия сеанса, необходимо сообщить веб-браузеру срок хранения cookie. Изначально для этого использовался атрибут expires, который указывает дату окончания срока хранения cookie. Хотя атрибут expires по-прежнему применяется, на смену пришёл атрибут max-age, определяющий срок хранения в секундах. Задав один из описываемых абтрибутов, браузер сохранит cookie в локальном файле, и прочёт при следующем обращении к веб-странице. После того, как будет достигнута дата окончания срока, автоматически исчезнет и cookie-файл. 2. Связь с веб-страницами (path) Вторым достаточно важным атрибутом cookie является его связь с веб-страницами. По умолчанию cookie связывается с создавшей его веб-страницей и всеми веб-страницами, расположеными в том же каталоге, что и создавашая его веб-страница, а также со всеми страницами из подкатологов. Т.е., например, если cookie был создан страницей www.example.com/cat/index.html, то, помимо этой страницы, данный cookie будет связан, например, со страницей www.example.com/cat/order.html и другими страницами из каталога cat. А также будет связан, например, со страницей www.example.com/cat/news/index.html и с иными страницами из подкаталога news. Как правило, значения по умолчанию вполне достаточно. Тем не менее иногда требуется, чтобы cookie был доступен, например, на всём сайте вне зависимости, где он был создан. Для того, чтобы так сделать надо воспользоваться атрибутом path. Для того, чтобы cookie, созданный некой страницей в неком подкаталоге на сайте, был доступен для всех страниц сайта, необходимо установить значение path = '/'. 3. Связь с доменом (domain) По умолчанию cookie доступен страницам с данного домена. Однако, иногда возникает необходимость доступности cookie, созданного на одном поддомене, на другом. Т.е. необходимо, чтобы cookie созданный, например, на promo.example.com, стал доступным для страниц с host.example.com. В таком случае нам понадобится атрибут domain. Например, чтобы cookie, созданный на promo.example.com, был доступен для всех страниц на promo.example.com и для всех страниц на host.example.com необходимо установить атрибут path = '/', а атрибут domain равным '.example.com'. В результате данный куки будет доступен всем веб-страницам с promo.example.com, с host.example.com, а также для всех страниц с поддоменов в домене example.com. В целях безопасности нельзя сделать так, чтобы домен cookie отличался от домена, в котором был создан cookie. Т.е. нельзя сделать, например, cookie, созданный веб-страницей с сайта www.beget.ru, доступным для страниц в домене www.example.com. 4. Безопасность (secure) Последний атрибут cookie логически определяет по какому соединению будет передаваться cookie. По умолчанию передача происходит по обычному незащищённому HTTP. Однако, если установить атрибут secure в значение true, то передача куки будет происходить по защищённому протоколу, например, по HTTPS. Хотя cookie открывает большие возможности для веб-программистов, стоит понимать и помнить о ограничениях cookies и о не безопасности их использования. Ограничения cookie С самого начала cookie предназначен для нечастого хранения небольшого объёма информации. Поэтому рассматривать cookies как средство взаимодействия между клиентом и сервером в полной мере нельзя. В спецификации RFC 2965, ссылка на которую есть внизу страницы, рекомендуется производителям браузеров не ограничивать число и размеры cookie-файлов, как бы, пытаясь расширить возможности cookie. Однако стандарты не требует, чтобы веб-браузер сохраняли более 300 cookies и более 20 cookies на сервер и размер cookie не превышал 4Кб. На сегодняйший день ограничение у FireFox и Internet Explorer(IE) составляет не более 50 cookies на сервер(т.е. для всех сайтов расположенных на этом сервере в сумме). Безопасность куки Технологию cookie нельзя рассматривать как безопасный инструмент сохранения данных на стороне клиента. По умолчанию cookie передаются по незащищённому протоколу HTTP и злоумышленики могут перехватить пересылаемые данные. Ранее мы рассказали про аттрибут secure, установив который, передача между клиентом и сервером будет происходить по защищённому протоколу HTTPS. Однако следует иметь ввиду то, что любая информация сохраняемая на стороне клиента с помощью куки сохраняется на жёстком диске клиента в открытом незашифрованном виде. Таким образом, Вы должны понимать, что использовать cookie для сохранения частной информации( логинов, паролей, банковских номеров и т.п.) нельзя. Иначе злоумышленик воспользовавшись шпионской программой или вирусом может узнать Ваши секретные данные. Используйте cookie для того, чтобы сделать Ваш сайт удобнее для пользователей, но не используйте механизм сохранения данных cookie для сохранения информации о пользователе. Что почитать по теме? См. также: javascript | php | http | https |