PTI-IT

Интернет програмиране с JAVA

View the Project on GitHub theVelislavKolesnichenko/PTI-IT

Управление на бисквитки (Cookies)

Бисквитките са текстови файлове, съхранявани на компютъра на клиента, съдържащи разнообразна информации с цел подпомагане на комуникацията между клиента и сървъра. Java сървлетите са проектирани да поддържат HTTP-бисквитки. За идентифициране на вече регистриран потребител например може да се осъществи следния процес в три стъпки:

Анатомия на бисквитките

Cookies обикновено се изпращат с HTTP хедъра (въпреки че JavaScript също може да изпрати бисквитка директно на един браузър). Сървлет, който създава бисквитка, може да изпрати хедърите по следния начин:

HTTP/1.1200 OK
Date:Fri,04Jan201421:03:38 GMT
...
Set-Cookie: name=xyz; expires=Friday,04-Feb-1022:03:38 GMT;
path=/; domain=javaeecode.com Connection: close
Content-Type: text/html

Ако браузърът е конфигуриран да съхранява бисквитки, то тогава тази информация ще се запази до времето на изтичане на валидността. Ако потребителят задава адреси в областта на оказания в параметъра “path” домейн, браузърът за всяка страница, която съответства на пътя и домейна на бисквитката, ще я изпраща до сървъра. Хедърите на браузъра може да изглеждат по следния начин:

GET / HTTP/1.1
Connection:Keep-Alive
...
Host: zink.demon.co.uk:1126
Accept: image/gif,*/*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz

След което сървлетът ще имат достъп до бисквитката чрез метода request.getCookies(), който връща масив от Cookie обекти.

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

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

Cookie cookie =new Cookie("key","value");
cookie.setMaxAge(60*60*24);
response.addCookie(cookie);

Стойността и името на бисквитката не може да съдържат интервали или някои от следните символи - []()=," / ? @ : ;