Кукі (інтернет)

невеликий фрагмент даних, що надсилається з вебсайту та зберігається на комп'ютері користувача веббраузером користувача
(Перенаправлено з HTTP cookie)

HTTP-cookie або «Ку́кі» (англ. cookie, множина англ. cookies — печиво) — у комп'ютерній термінології поняття, яке використовується для опису інформації у вигляді текстових або бінарних даних, отриманих від вебсайту на вебсервері, яка зберігається у клієнта, тобто браузера, а потім відправляється на той самий сайт, якщо його буде повторно відвідано.

Таким чином, вебсервер помічає браузер користувача при відвідуванні. Кукі створюються за ініціативою скриптового сценарію на стороні веббраузера. При наступному візиті сервер буде знати, що користувач вже тут був. За допомогою кукі-технології можна вивчити вподобання відвідувача. Кукі є одним із найточніших засобів визначення унікального користувача.

Файл «cookies» (невеликий файл з налаштуваннями профілів) полегшує користування вебсайтом, записуючи дані, необхідні для входу в систему та збору статистики.[1] Користуватися сайтом можна також без файлів «cookies».[1] Кукі зазвичай зберігають ваші вподобання на сайті, такі як ваша мова, місце перебування тощо[2]. Більшість інтернет-користувачів автоматично приймають файли «cookies». Їх можна вимкнути в будь-який момент або налаштувати пошукову систему так, щоб вона повідомляла про всі випадки, пов'язані з відправкою файлів цього типу.[1]

Застосовується для збереження даних, специфічних для даного користувача, і використовуваних вебсервером для різних цілей, серед яких:

  • у системах з віддаленим доступом — пароль, що породжується сервером при першому підключенні і посилається користувачеві; при подальших підключеннях користувач не повинен надавати серверу цей пароль
  • відстежування стану сесії[en]

Концепція була розроблена компанією Netscape Communications.

Види кукі-файлів ред.

Існують такі види кукі-файлів: «сеансові» і «постійні». Сеансові кукі є тимчасовими і зберігаються тільки до моменту вимкнення браузера. Постійні кукі залишаються на жорсткому диску комп'ютера або на електронному носії до тих пір, поки їх не видалити або не закінчиться термін їх дії[3].

Первинні та сторонні кукі ред.

Будь-які первинні чи сторонні кукі відносяться до вебсайту чи домену, що містить кукі.

Первинні кукі в звичайному розумінні є такими, що встановлюються вебсайтом під час їх відвідання користувачем вебсайти що відображаються у вікні URL.

Сторонні кукі — це кукі, що налаштовані доменами, відмінними від тих, що відвідав користувач. Якщо користувач відвідує вебсайт і окрема компанія налаштовує кукі через цей вебсайт, це і буде сторонніми куками.

Механізм Http-cookie ред.

Сервер може встановити кукі у відповідь на запит браузера. Для цього служить заголовок відповіді (response header) Set-cookie.

Кукі також може бути встановлений і самим браузером через Javascript, який підтримується більшістю сучасних браузерів.

Браузер повинен зберігати кукі на період, визначений для її часу життя і посилати кукі на сервер в заголовку запиту (request header) Cookie.

У запиті посилаються тільки ті кукі, які відповідають домену, шляху і протоколу, для яких кукі була встановлена.

Вищевикладений механізм застосовний і для будь-якого іншого, відмінного від браузера, клієнтського застосування, що обмінюється інформацією з вебсервером по протоколу HTTP/HTTPS.

Синтаксис RESPONSE Header (Set-cookie) ред.

set-cookie      =       "Set-cookie:" cookies
cookies         =       1#cookie
cookie          =       NAME "=" VALUE *("; " cookie-av)
NAME            =       attr
VALUE           =       value
cookie-av       =       "Comment" "=" value
                   |       "Expires" "=" value
                   |       "Domain" "=" value
                   |       "Max-age" "=" value
                   |       "Path" "=" value
                   |       "Secure"
                   |       "Version" "=" 1*digit

Неофіційно заголовок відповіді Set-cookie починається з "Set-cookie: "(без лапок). Кожен cookie починається з пари Name=value; за нею можуть іти ще пари Name=value, розділені парою символів «крапка з комою, пропуск» — «;»(без лапок). Синтаксис пари Name=value показаний раніше. Специфікація атрибутів і їхньої семантики йде далі. Пара Name=value повинна йти першою в кожному cookie. Інші пари ім'я-значення можуть іти далі в довільному порядку. Якщо ім'я змінної зустрічається в cookie неодноразово, поведінка не визначена.

name=value

Обов'язково. Ім'ям пакету інформації є NAME, значенням — VALUE. імена, що починаються з символу «$»(без лапок), зарезервовані і не можуть використовуватися в додатках.

VALUE є «непрозорим» користувачеві і може бути чим завгодно, що сервер хоче послати, можливо у визначеному сервером придатним для друку ASCII — кодуванню. «Непрозорість» означає, що зміст цікавий і доцільний лише серверу що послав cookie. Зміст може, фактично, бути легким для читання будь-кому, хто досліджує cookie.

comment=comment

Опційно. Оскільки cookie може містити приватну інформацію про користувача, атрибут Comment дозволяє серверу документувати намічене використання cookie. Користувач може проглянути інформацію, щоб вирішити, чи почати(продовжити) сесію з цим cookie.

expires=date Опційно. Атрибут Expires указує час зберігання cookie. Замість date повинна стояти дата у форматі «expires=sun, Dd-mon-yyyy Hh: mm: ss GMT», після якої закінчується час зберігання cookie. Якщо цей атрибут не вказаний, то cookie зберігається протягом одного сеансу, до закриття браузера.

domain=domain

Опційно. Атрибут Domain визначає домен, для якого cookie є дійсним. Явно вказаний домен повинен завжди починатися з крапки.

max-age=delta-seconds

Опційно. Атрибут Max-age визначає час життя cookie в секундах. Значення delta-seconds — десяткове не — негативне ціле число. Після закінчення delta-seconds клієнт повинен відмовитися від кукі. Значення нуля означає, що від cookie потрібно відмовитися негайно.

path=path

Опційно. Атрибут Path визначає підмножина URL, до яких застосовується cookie.

secure

Опційно. Маркер Secure (значення не привласнюється) наказує використовувати тільки (невказаний) безпечний метод з'єднання з сервером кожного разу, коли необхідно послати назад цей cookie.

Програма (можливо під контролем користувача) може визначити, який рівень безпеки відповідає для «secure» cookie. Атрибут Secure потрібно розуміти як радий з безпеки від сервера, вказуючи, що в інтересі сесії захистити зміст cookie.

version=version

Обов'язково. Атрибут Version, десяткове ціле, ідентифікує, якій версії специфікації відповідає cookie. Для даної специфікації застосовується Version=1.

Приклад заголовка відповіді Set-cookie: Set-cookie: sessionid=678893467800; path=/; domain=.mydomain.com
Set-cookie: lang=ru

Синтаксис REQUEST Header (Cookie) ред.

  cookie          =       "Cookie:" cookie-version
                          1*((";" | ",") cookie-value)
  cookie-value    =       NAME "=" VALUE [";" path] [";" domain]
  cookie-version  =       "$version" "=" value
  NAME            =       attr
  VALUE           =       value
  path            =       "$path" "=" value
  domain          =       "$domain" "=" value

Приклад заголовка запиту Cookie: Cookie: sessionid=678893467800; lang=it

Недоторканність приватного життя — Конфіденційність ред.

Під час нормальної експлуатації сервер і браузер користувача постійно обмінюються кукі. Оскільки кукі можуть містити конфіденційну інформацію (ім'я користувача, умови доступу тощо), їх вміст не має бути доступним іншим. Крадіжка кукі — це акт несанкціонованого перехоплення кукі сторонніми.

Див. також ред.

DHTML

Примітки ред.

  1. а б в Компанія «Київстар». Політика конфіденційності для учасників спільнот Київстар та DJUICE в соціальних мережах Facebook та Вконтакте [Архівовано 15 травня 2013 у Wayback Machine.]
  2. Довідка Firefox[недоступне посилання з липня 2019]
  3. ПРАВИЛА ВИКОРИСТАННЯ COOKIE-ФАЙЛІВ. Архів оригіналу за 6 березня 2016. Процитовано 16 вересня 2015.

Посилання ред.