Cookies - витяг

Cookies - витяг
У минулій статті "Cookies - установка" ми «нафарширували» наш браузер печеньки. Прийшов час дістати їх і вибрати найсмачніші. У цій статті будемо розбиратися в тонкощах вилучення куків.

Гюльчатай, відкрий личко!

Власне, сам процес отримання куків до неподобства простий:

Ось і все, спасибі за увагу ... :)

Жарт, звичайно ж. Так, ми отримали рядок з куками, але заковика в тому, що таким чином браузер віддає нам абсолютно все куки, встановлені поточним ресурсом. А саме, якщо стояла одна кука, cookieStr буде містити:

А ось якщо сайтом було встановлено кілька кук, то змінна cookieStr дещо змінить свій вигляд:

"CookieName1 = cookieValue; cookieName2 = cookieValue; cookieName3 = cookieValue;"

Ось тут-то і з'являється ряд міні-завдань, які потрібно вирішити, перш ніж дістатися до заповітної куки:

  • куки необхідно структурувати, відокремити один від одного;
  • знайти потрібну і вилучити її вміст

Якщо значення куки, в свою чергу, є також якимось переліком даних, то приблизно таку ж процедуру потрібно проробити і з ними:

  • структурувати значення, відокремити один від одного;
  • знайти потрібне

А тепер детальніше

Давай розберемо рядок з куками на запчастини. Для початку закладемо вихідні дані:

Першим етапом, розіб'ємо рядок на масив по разделителю ";", елементи якого будуть рядками і містити пару ключ = значення:

Тепер, потрібно обробити (привести до людського виду) кожну пару в цьому масиві:

В результаті маємо масив об'єктів, кожен з яких має метод name і value. У name міститься ім'я куки, value - упорядкований масив значень куки.

Тепер згадаємо, в ім'я чого ми все це затіяли ... Ах, так! Нам необхідно отримати значення конкретної куки. Трохи "причесати" код, отримаємо ось таку остаточну функцію:

Результатом роботи функції буде значення (масив значень) заданої куки, інакше, якщо кука була знайдена, функція поверне false. При виконанні функції без параметра cName, функція поверне масив всіх куків. Приклад виклику з параметром cName:

Ось, власне, і все з отриманням куки. Звичайно, ти, можливо, подумав: «Я б зробив не так.», - безсумнівно, але даний матеріал лише покликаний наочно продемонструвати і розкласти по поличках специфіку цього процесу, а як це реалізовувати - особиста справа кожного розробника.

Жити або не жити?

Якщо куку можна встановити, значить її можна і видалити! Так, логіка в порядку. А робиться це ... через установку:

з тією лише різницею, що для видалення, Кука потрібно виписати термін життя «заднім числом».

З усіх операцій з куками, найбільш трудомістким виявилося їх отримання, точніше розбір отриманих даних, хоча глибина розбору, звичайно ж, залежить від поставлених завдань. Наприклад, якщо сайт ставить одну єдину куку з одним значенням, то простіше дістати її значення, наприклад за допомогою методів об'єкта String (indexOf (), substr ()). Але і мати в своєму арсеналі універсальну функції по розбору куків, теж буде не зайвим.

У наступній статті спробуємо скласти "бабусин рецепт", щоб повісити на холодильник і користуватися ним. Інакше кажучи, об'єднаємо всі операції в один скрипт, щоб в подальшому, легко застосовувати його в своїх проектах.

Куди далі

Схожі статті