Работа с бисквитки в CGI-Perl скрипт за начинаещи на

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

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

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

Къде е по-добър и по-умен начин за съхраняване на настройките за всеки отделен потребител? Точно така, машината на потребителя. -) и се използва за тази цел механизъм, като например бисквитки.

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

Какви са бисквитки?

Много "нормални" Интернет потребителите не знаят какво бисквитки, но са чули или прочели, която включва бисквитки по някакъв начин да ви позволи да се следи движението им в интернет и да ги постави на равна нога с троянски коне и други шпионски софтуер. В един учебник по интернет, дори отговаря на определението ". Бисквитки - това са малки аплети, които се изпълняват на сървъра на вашата машина и позволяват да се грижи за вас" Тази нагласа към бисквитките, също има право да съществува, но в действителност няма нищо общо с бисквитки не са програми.

Cookies - тези данни е под формата на двойки от "ключ = стойност", която осигурява браузър сървър "за съхранение", а след това, следващия път, когато се приближи вашия браузър получава от него отново. Освен това, от съображения за сигурност, тези данни могат да бъдат получени в общия случай само от сървъра, който ги е издал, или тези, за които те са предназначени от издаващия сървъра (ако настройките на браузъра не го забраняват). По този начин, сървърът на потребителски бисквитки може да спаси само това, което той вече "знае".

В повечето браузъри, тези данни се съхраняват в текстов файл в шифрован вид. Въпреки, че сървърът не е необходимо да се "знае" как точно бисквитки физически се съхранява на клиента.

Как бисквитки работят. формат бисквитка.

На нивото на HTTP обмен бисквитки протокол между браузъра и сървъра е както следва.

Когато HTTP-отговор издаване на сървъра може да зададе бисквитка към браузъра чрез полето за отговор заглавна "Set-Cookie". Ако искате да инсталирате някои откажете бисквитките, в заглавието на отговор трябва да бъде съответно няколко полета Set-Cookie - отделно за всяка бисквитка.

В бъдеще, ако бисквитката все още е останало в данните, базирани на браузър (за времето на живота им, вижте. По-долу), следните искания този ресурс (и други ресурси на сървъра, включени в действие зона бисквитка), браузърът се завръща тази заглавна бисквитка в HTTP- поискване "Cookie". Издадена само себе си бисквитката (NAME = стойност), няма параметри. Ако наистина някои откажете бисквитките, са издадени в едно поле "Cookie" чрез "за този ресурс; ";

А CGI-скрипт е кутията на заявката е на разположение чрез променлива CGI среда "HTTP_COOKIE"

Пълен формат е зададен бисквитка, както следва:

NAME = стойност; [Валидна = дата;] [път = PATH] [домейн = DOMAIN_NAME] [осигури]

Задължително част всъщност е инсталиран бисквитка

където ИМЕ - име на ключа и стойността - ключ стойност.

изтича - изтичане срока на годност. С опцията изтича на сървъра може да се уточни "срок на годност" (или по-скоро ", последната дата на валидност") бисквитка. Ако не е посочен този параметър, съществува бисквитката в прозореца на браузъра преди да го затворите. Това е полезно, например, при достъп до услуги, които изискват удостоверяване на потребителя - в бисквитки съхраняват информация на потребителя за достъп, потребителски "разходки" на уеб интерфейса с тези бисквитки, а след това се затваря прозореца - и данни за достъп са изтрити от компютъра. И също така - за всички други параметри, които са валидни само за тази сесия - например, в файловия мениджър, за да се удобно съхранява в бисквитки текущия път до файловете.

Дата и час трябва да бъдат посочени в следния вид:

Wdy, DD-Mon-YYYY HH: MM: SS GMT

Къде Wdy - ден от седмицата и Понеделник - месец (на английски намаления trehbukennyh), DD - ден на месеца (две цифри), ГГГГ - година, HH. ММ. SS - часове, минути и секунди (2 цифри). Освен това имайте предвид, че дата-времето, определено изтичане бисквитка "Гринуич".

домейн - името на домейна, за който важи бисквитката. Например, домейн = yourdomain.com;

По подразбиране - издаден сървъра за имена на бисквитката домейн (уебсайт).

път - пътят на сървъра. Това набори параметри (ограничена) зона на уеб сървър, който е валиден за тази бисквитка. При търсене на бисквитки за точно този браузър и сравнява низа до началото на пътя на сървъра. Например, ако домейн бисквитка трябва да бъде в целия сайт (от главната папка и по-долу), пътят трябва да бъде "/"; Ако действията на бисквитки на домейни се ограничават до папката CGI-бен, после път = / CGI-хамбар /.

Друг важен момент - тъй като съответната поискана от ресурса на браузъра обхват бисквитка тока се определя от това, дали началото съответства на текущия път на параметъра сървъра път бисквитка, а след това, да кажем, на път = / Perl / площ на бисквитата е ограничен папка Perl на сървъра, и когато пътя = / Perl бисквитка ще се прилага и за всички папки и файлове, пълния път, който започва в "/ Perl". например, папки perl_doc. perl_scripts и perl.html файл. намира в главната папка.

Ако не е посочен пътя, домейн бисквитка е папка на сървъра, който работи скрипта, и по-долу, т.е. пътеката по подразбиране =

осигуряване - това показва, че бисквитката съдържа поверителна информация, която трябва да се предава само ако протоколът HTTPS работи. Когато са изложени в "нормална" HTTP протокола не се предава.

Обработка приема бисквитки

Разгледаме следния пример: форум, в който потребителят може да коригира броя на съобщенията, показвани на страницата, както и реда на сортиране (от по-рано, за да по-късно или обратното). Тези настройки се запаметяват скрипт настроите външния вид на Куан на теми в този форум и сортиране по съответния начин.

Разработчици на скриптове, които използват бисквитките, тя трябва да се има предвид, че клиентът (браузър), като цяло, не гарантира, че нововъведената сървъра бисквитката ще бъде приета, и ако тя е дори прие, - безопасност по време на определен сървър изтичане срока на годност, защото:
Потребителят може да ги деактивирате или да използвате HTTP-Firewall, блокиране на обмена на бисквитки. Също така, в повечето съвременни браузъри имат възможност да се даде възможност на потребителя да потвърдите всеки набор бисквитки. Въпреки, че е малко вероятно, че има хора, които го използват през цялото време. -)
  • Браузъри поддържат ограничен брой съхраняват бисквитки и ограничават техния размер. Максимален брой едновременно съхраняват бисквитки - 20, всеки размер не трябва да надвишава 4 KB (когато е инсталирано дълго бисквитка 4KB, той ще бъде "гарнирани" с 4 KB) - 300, за един сайт (домейн от второ ниво).
  • Потребителят може да вземе - и премахване (ясни) бисквитки на вашия компютър.

  • Ние се експериментира с бисквитки

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

    Създаване на срока на валидност на бисквитките

    Както написах по-горе, бисквитка, можете да настроите датата и часа "и изтичане на срока на годност." Въпреки това, в повечето случаи (скриптове партньорски програми и т.н.), е необходимо да има точно определен период бисквитка (тъй като неговото инсталиране), вместо на крайния действието дата работно време.

    Да предположим, че при условията на определен онлайн магазин партньорска програма се смята за купувача, който дойде "чрез партньор", ако той направил покупка през последния месец (30 дни) след първото преминаване към партньорския сайт в интернет страницата на онлайн магазин.

    Така че, когато за пръв път посетите онлайн магазин скрипт сметка партньорска програма трябва да определи бисквитка купувач браузъра, съдържащ идентификатор на партньора за период от 1 месец (както е при извършване на покупки трябва да проверите, и стойността на тази бисквитка и по този начин произвежда - или не - партньори натрупване).

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

    Кодът, който реализира тази функция може да бъде:

    Правилното функциониране на този фрагмент, можете да проверите всяка пермутация на датата и часа, или един месец :-)

    И в крайна сметка - най-добрите ми пожелания за тези, които решат да използват работата с бисквитки във вашите скриптове. Те се основават на опита от работата с такива скриптове като потребител.

    Отрицателната репутация на бисквитките е свързано не само с особеностите на този механизъм, като ограмотяване го използва в някои скриптове.

    1. Не записвайте пароли и друга поверителна информация в бисквитки "с валидност" (които не са изтрити, когато затворите прозореца на браузъра на посетителя), без изрични желанията на потребителя. Използването на много форуми бисквитки за да съхранява информация за достъп на потребителя е много удобна за последния (няма нужда да въвеждате всеки път), но не трябва да забравяме факта, че можете да работите за някой друг, или обществен компютър (например, приятел или Интернет-клуб), така че е predusmatrivanie добър вариант е под формата на входни "птици" като "Спомням си име и парола на този компютър" (за предпочитане не е активна по подразбиране). Желателно е също така да бъде в състояние изтриете (нулиране) потребителят е инсталирал бисквитки. Лесен за употреба на бисквитки не трябва да се постига за сметка на компромис със сигурността.

    2. Ако използвате бисквитки за да съхранява потребителско име, последният все още трябва да бъде в състояние да влезе под различно име, без да ги изчистите от браузъра :-)

    3. Ако сценарият не може да работи правилно, когато бисквитки са забранени във вашия браузър, е желателно да предупреди потребителя. Можете да проверите активирани или деактивирани бисквитките, чрез задаване на "контрол" бисквитка и след това да го прочете, и ако те са с увреждания, да издаде съответните инструкции.