Информация за бисквитки

Какво са бисквитките (HTTP cookies)?

HTTP cookie или HTTP бисквитка, мн.ч. „бисквитки“, е начин, използван от уеб сайтовете, за съхранение на информация локално в уеб браузъра на посетителя.

Чрез HTTP бисквитките сайтовете могат да „различават“ и „запомнят“ посетителите си, и техните индивидуални предпочитания, настройки и извършени действия.

Когато даден уеб сайт се зарежда, той създава и изпраща на посетителя си бисквитка. Информацията в тази бисквитка се записва от уеб браузъра – в системното му пространство, на устройството на посетителя. При всяка следваща заявка към същия сайт, браузърът връща обратно информацията от бисквитката.

История на интернет бисквитките

HTTP бисквитката се появява през 1994 г., омесена от пръстите на програмиста Лу Монтули, работещ тогава в компанията Netscape Communications. Неговите бисквитки били нужни в проект за онлайн магазин, по който работел, а целта им е била да запомнят добавените продукти в пазарската количка.

Бисквитките се наричат HTTP бисквитки, защото са допълнение на възможностите на HTTP протокола.

Какво представлява информацията в бисквитките?

Технически погледнато, бисквитките представляват обикновена текстова информация, във формат име=стойност. Например „language=bg-BG“, където language е името на бисквитката, а bg-BG е стойността й.

Например ако даден мултиезичен уеб сайт използва този начин за съхранение на информация, всеки един негов посетител ще се сдобие с бисквитка, съдържаща предпочитанието му за език. Посетителят, избрал българската версия на сайта, кликнал на бутона BG например, ще получи бисквитката „language=bg-BG“. Друг посетител, избрал английската версия на сайта, ще получи бисквитката „language=en-US“. Когато в последствие всеки един от тези посетители отвори същия сайт, сайтът ще разбере какъв език да зареди, като види бисквитките им. За посетителя, избрал български език,  ще се зареди сайта на български език, а на другия посетител съответно на английски език.

Когато сайтът иска да запомни даден посетител, той може да създаде бисквитка, съдържаща уникален идентификатор за този посетител. Например бисквитката „userID=dfg45sd7fg87d5f4g„, където userID е името на бисквитката, а dfg45sd7fg87d5f4g е произволно генериран стринг (символен низ), асоцииран само за дадения посетител. Идентификаторът може да се съхранява в базата данни на сайта, заедно с потребителските настройки и данни. Когато този посетител зареди отново сайта, неговият браузър ще изпрати бисквитката „userID=dfg45sd7fg87d5f4g“. Според получения идентификатор, сайтът ще провери и извади от базата данни само информацията на този посетител.

Сайтът, източник на бисквитката, може да зададе към нея атрибути, които ще послужат на уеб браузъра за обработката й.

Например бисквитката, зададена при избор на език за сайта, може да изглежда по следния начин в HTTP отговора на сайта и да има следните атрибути:

Set-Cookielanguage=bg-BGMax-Age=3600; Expires=Sun, 09 Nov 2017 08:49:37 GMT; Path=/blog

Set-Cookie е HTTP хедър, намиращ се в HTTP отговора от сайта;

language=bg-BG – информацията на бисквитката, име и стойност;

Max-AgeExpires и Path са атрибутите на бисквитката;

Тази бисквитка ще бъде записана от уеб браузъра, заедно с атрибутите й. Според зададения период, браузърът ще пази бисквитката до изтичане на броя секунди (в Max-Age) или до посочената дата (в Expires). Бисквитката ще бъде изпратена към сайта, само ако търсеният от посетителя ресурс се намира на адреса /blog (Path), например mysupersite.com/blog.

За какво се използват бисквитките?

Основно бисквитките се използват от уеб сайтовете, за да „различават“ и „запомнят“ своите посетители, идентифицирани (потребители) или анонимни (гости).

И още, бисквитките се използват за запомняне на предпочитанията на потребителите и състоянието на дадена функционалност, услуга или особеност в сайта. Например избран език, състояние на навигационно меню, цвят на фона, тема на дизайна, съгласяване с ползването на бисквитки, добавени продукти в кошницата и други.

Бисквитките може да са временни (сесийни) или постоянни.

Когато даден посетител се идентифицира в сайта, например чрез потребител и парола, тогава той може да получи сесийна (временна) бисквитка. Тя ще послужи на посетителя като временен пропуск и при всяка следваща заявка ще удостоверява пред сайта направената вече идентификация. По този начин не се налага сайтът да изисква, на всяка следваща страница, данните за достъп на потребителя. Сесийните бисквитки се ползват за записване на информация, която е необходима само до края на сесията, до затваряне на уеб браузъра или докато потребителят не „излезе“ от профила си.

Пример за използване на временна удостоверяваща бисквитка е системата WordPress. След като потребителят се идентифицира (потребител+парола) в администрацията на сайта, той получава и пази временно бисквитката wordpress_logged_in_(…)=wpuser|(…). Наличието на тази бисквитка, след това във всяка заявка към сайта, удостоверява извършената по рано идентификация на потребителя.

Постоянните бисквитки остават в браузъра и след като той бъде затворен. Тези бисквитки също може да се ползват за различаване и запомняне, но на анонимните посетители на даден сайт. Тази информация би могла да послужи на сайта за създаване на статистики за посещенията, подобряване на предоставяните услуги, показване на подходящи реклами и други.

Постоянните бисквитки най-често се употребяват от услуги за анализ и статистики за посещенията на даден сайт или от услуги и компании за реклама в Уеб. Поради това постоянните бисквитки са наричани още и проследяващи бисквитки.

Пример за постоянни бисквитки са тези, използвани от услугата за анализ на Google – Analytics. Основните бисквитки, които се ползват от тази услуга са _ga, _gid и _gat. Те също така са и пример за бисквитки, които са зададени чрез JavaScript код, тоест не пристигат при браузъра по HTTP (в HTTP хедъра Set-Cookie).

Как и къде се записват бисквитките?

Сайтът може да изпрати бисквитката към посетителя си чрез HTTP хедъра Set-Cookie или да използва JavaScript код, който се изпълнява директно в уеб браузъра.

Независимо по какъв начин е зададена бисквитката, тя се записва от уеб браузъра в системното му пространство на устройството на посетителя. И при всяка следваща заявка, направена от браузъра към сайта-източник на бисквитката, информацията в нея се връща обратно.

При някои уеб браузъри бисквитките се записват в отделни малки текстови файлове (IE). Във Firefox например всички бисквитки се записват в един единствен файл cookies.sqlite, намиращ се в директорията на потребителския Firefox профил.

Повечето от най-известните и използвани уеб браузъри предоставят опции и настройки, с които да контролирате записването на бисквитките. Във Firefox например можете да забраните записването на каквито и да било бисквитки или да ограничите само бисквитките от „трета страна„. Firefox потребителите могат и да премахват събраните бисквитки в уеб браузъра си, като ги изтриват.