Последние новости:

Поиск по сайту:

Начало — более, чем половина всего (Аристотель).

JavaScript и Куки

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
05.11.2017
JavaScript и Куки

Что такое Куки?

Веб-браузеры и серверы используют протокол http для обмена данными и http протокол без сохранения состояния. Но для коммерческого веб-сайта требуется поддерживать информацию о сеансе между различными страницами. Например, регистрация одного пользователя заканчивается после заполнения многих страниц. Но как сохранить информацию о сеансе пользователей на всех веб-страницах.

Во многих ситуациях использование файлов cookie является наиболее эффективным методом запоминания и отслеживания предпочтений, покупок, комиссий и другой информации, необходимой для лучшего опыта посетителей или статистики сайта.

Как это работает?

Ваш сервер отправляет некоторые данные в браузере посетителя в виде куков. Браузер может принимать куки. Если это произойдет, она хранится в виде записи обычного текста на жестком диске посетителя. Теперь, когда посетитель приходит на другую страницу на вашем сайте, браузер посылает тот же файл куков на сервер для поиска. После того, как ответ получен, сервер знает/помнит, что был сохранен ранее.

Cookies представляют собой обычный текст записи данных 5 полей переменной длины:

  • Expires — дата истечения куков. Если это поле пустое, куки истекают, когда посетитель покидает браузер.
  • Domain — имя домена вашего сайта.
  • Path — Путь к странице каталога или вебстранице, которые устанавливают куки. оно может быть пустым, если вы хотите получить куки из любого каталога или страницы.
  • Secure — Если это поле содержит слово «secure», то куки могут быть получены только с помощью безопасного сервера. Если это поле пустое, то никаких ограничений не существует.
  • Name=Value — куки устанавливаются и извлекаются в виде пар ключ-значение

Куки изначально были разработаны для CGI-программирования. Данные, содержащиеся в куки автоматически передаются между веб-браузером и веб-сервером, поэтому CGI скрипты на сервере могут читать и записывать значения куки, которые хранятся на клиенте.

JavaScript может также управлять куками, используя свойство cookie объекта Document. JavaScript может читать, создавать, изменять и удалять куки, которые относятся к текущей веб-странице.

Как хранятся Куки

Самый простой способ для создания куки, это присвоить значение строкового объекта document.cookie, который выглядит следующим образом.

document.cookie = "key1=value1;key2=value2;expires=date";

 

Здесь атрибут expires является необязательным. Если вы предоставите этот атрибут с действительной датой или временем, то куки истекают на определенную дату или время, и после этого, значения куков не будет доступно.

Примечание:
Значения Cookie не могут включать в себя точку с запятой, запятые или пробелы. По этой причине, вы можете использовать в JavaScript функцию escape() для кодирования значения перед сохранением его в куки. Если вы сделаете это, вы также должны использовать соответствующую функцию unescape(), когда вы читаете значение куков.

Пример

Попробуйте следующее. Код устанавливает имя клиента во входном куки.

<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>

 

Примечание:
Здесь length является методом класса Array, который возвращает длину массива. Мы обсудим Array в отдельной главе. К тому времени, пожалуйста, попробуйте его усвоить.

 

Примечание:
Там могут быть некоторые другие куки уже установленные на вашем компьютере. Приведенный выше код будет отображать все куки, установленные на вашем компьютере.

Настройка Cookies — Дата истечения срока действия

Вы можете продлить жизнь куков после окончания текущего сеанса браузера, установив дату истечения срока действия и сохранить срок годности куков внутри. Это можно сделать, установив в атрибут ‘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>

Удаление Cookie

Иногда вы хотите удалить куки, так что последующие попытки не прочитают куки. Чтобы сделать это, нужно просто установить срок годности на момент времени в прошлое.

Пример

Попробуйте следующий пример. Он показывает, как удалить куки, установив его срок годности до одного месяца на текущую дату.

<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>

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Абу Бакар

Паста

Статьи партнеров:

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить

Спасибо! Ваша заявка принята

close

Спасибо! Ваша заявка принята

close