Веб-браузеры и серверы используют протокол http для обмена данными и http протокол без сохранения состояния. Но для коммерческого веб-сайта требуется поддерживать информацию о сеансе между различными страницами. Например, регистрация одного пользователя заканчивается после заполнения многих страниц. Но как сохранить информацию о сеансе пользователей на всех веб-страницах.
Во многих ситуациях использование файлов cookie является наиболее эффективным методом запоминания и отслеживания предпочтений, покупок, комиссий и другой информации, необходимой для лучшего опыта посетителей или статистики сайта.
Ваш сервер отправляет некоторые данные в браузере посетителя в виде куков. Браузер может принимать куки. Если это произойдет, она хранится в виде записи обычного текста на жестком диске посетителя. Теперь, когда посетитель приходит на другую страницу на вашем сайте, браузер посылает тот же файл куков на сервер для поиска. После того, как ответ получен, сервер знает/помнит, что был сохранен ранее.
Cookies представляют собой обычный текст записи данных 5 полей переменной длины:
Куки изначально были разработаны для CGI-программирования. Данные, содержащиеся в куки автоматически передаются между веб-браузером и веб-сервером, поэтому CGI скрипты на сервере могут читать и записывать значения куки, которые хранятся на клиенте.
JavaScript может также управлять куками, используя свойство cookie объекта Document. JavaScript может читать, создавать, изменять и удалять куки, которые относятся к текущей веб-странице.
Самый простой способ для создания куки, это присвоить значение строкового объекта document.cookie, который выглядит следующим образом.
document.cookie = "key1=value1;key2=value2;expires=date";
Здесь атрибут expires является необязательным. Если вы предоставите этот атрибут с действительной датой или временем, то куки истекают на определенную дату или время, и после этого, значения куков не будет доступно.
Попробуйте следующее. Код устанавливает имя клиента во входном куки.
<html> <head> <script type = "text/javascript"> <!-- function WriteCookie() { if( document.myform.customer.value == "" ){ alert("Введите значение!"); return; } cookievalue= escape(document.myform.customer.value) + ";"; document.cookie="name=" + cookievalue; document.write ("Setting Cookies : " + "name=" + cookievalue ); } //--> </script> </head> <body> <form name="myform" action=""> введите имя: <input type="text" name="customer"/> <input type="button" value="Set Cookie" onclick="WriteCookie();"/> </form> </body> </html>
Теперь ваш ПК имеет куки под названием name. Можно установить несколько куков с использованием нескольких пар ключ = значение, разделенных запятой.
Чтение куков так же просто, как и писать, так как значение объекта document.cookie это куки. Таким образом, вы можете использовать эту строку всякий раз, когда вы хотите получить доступ к кукам. Строка document.cookie будет хранить список пар имя = значение, разделенных точкой с запятой, где name является именем куки и значение является его строковое значение.
Вы можете использовать строки функцию split(), чтобы разбить строку на ключ и значение следующим образом:
Попробуйте следующий пример, чтобы получить все куки.
<html> <head> <script type="text/javascript"> <!-- function ReadCookie() { var allcookies = document.cookie; document.write ("All Cookies : " + allcookies ); // Получить все пары файлов cookie в массиве cookiearray = allcookies.split(';'); // Теперь возьмите ключ и значение из этого массива for(var i=0; i<cookiearray.length; i++){ name = cookiearray[i].split('=')[0]; value = cookiearray[i].split('=')[1]; document.write ("Ключ: " + name + " и значение: " + value); } } //--> </script> </head> <body> <form name="myform" action=""> <p> нажмите на следующую кнопку и увидите результат:</p> <input type="button" value="Get Cookie" onclick="ReadCookie()"/> </form> </body> </html>
Вы можете продлить жизнь куков после окончания текущего сеанса браузера, установив дату истечения срока действия и сохранить срок годности куков внутри. Это можно сделать, установив в атрибут ‘expires’ даты и времени.
Попробуйте следующий пример. Он показывает, как продлить срок действия куков на 1 месяц.
<html> <head> <script type="text/javascript"> <!-- function WriteCookie() { var now = new Date(); now.setMonth( now.getMonth() + 1 ); cookievalue = escape(document.myform.customer.value) + ";" document.cookie="name=" + cookievalue; document.cookie = "expires=" + now.toUTCString() + ";" document.write ("Setting Cookies : " + "name=" + cookievalue ); } //--> </script> </head> <body> <form name="myform" action=""> Enter name: <input type="text" name="customer"/> <input type="button" value="Set Cookie" onclick="WriteCookie()"/> </form> </body> </html>
Иногда вы хотите удалить куки, так что последующие попытки не прочитают куки. Чтобы сделать это, нужно просто установить срок годности на момент времени в прошлое.
Попробуйте следующий пример. Он показывает, как удалить куки, установив его срок годности до одного месяца на текущую дату.
<html> <head> <script type="text/javascript"> <!-- function WriteCookie() { var now = new Date(); now.setMonth( now.getMonth() - 1 ); cookievalue = escape(document.myform.customer.value) + ";" document.cookie="name=" + cookievalue; document.cookie = "expires=" + now.toUTCString() + ";" document.write("Setting Cookies : " + "name=" + cookievalue ); } //--> </script> </head> <body> <form name="myform" action=""> Enter name: <input type="text" name="customer"/> <input type="button" value="Set Cookie" onclick="WriteCookie()"/> </form> </body> </html>