Специфікація, Cookies, HTML, XML, DHTML, статті

Повний опис поля Set-Cookie HTTP заголовка:

  Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure

Мінімальна опис поля Set-Cookie HTTP заголовка:

  Set-Cookie: NAME=VALUE;

NAME=VALUE – Рядок символів, виключаючи переклад рядка, коми та
прогалини. NAME-ім’я cookie, VALUE – значення.

expires=DATE – Час зберігання cookie, тобто замість DATE повинна стояти
дата в форматі Wdy, DD-Mon-YYYY HH: MM: SS GMT, після якої закінчується час
зберігання cookie. Якщо цей атрибут не вказаний, то cookie зберігається протягом
одного сеансу, до закриття броузера.

domain=DOMAIN_NAME – Домен, для якого значення cookie
дійсно. Наприклад, domain = cit-forum.com. У цьому випадку значення cookie
буде дійсно і для сервера cit-forum.com, і для www.cit-forum.com. Але не
радійте, вказівки двох останніх періодів доменних імен вистачає тільки для
доменів ієрархії “COM”, “EDU”, “NET”, “ORG”, “GOV”, “MIL”, і “INT”. Для доменів
ієрархії “RU” доведеться вказувати три періоди.

Якщо цей атрибут опущений, то за умовчанням використовується доменне ім’я сервера,
з якого було виставлено значення cookie.

path=PATH – Цей атрибут встановлює підмножину документів, для
яких дійсно значаніе cookie. Наприклад, вказівка ​​path = / win приведе до
того, що значення cookie буде дійсне для безлічі документів в
директорії / win /, у директорії / wings / і файлів в поточній директорії з іменами
типу wind.html і windows.shtml

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

secure – Якщо стоїть такий маркер, то інформація cookie пересилається
тільки через HTTPS (HTTP з використанням SSL). Якщо цей маркер не вказаний, то
інформація пересилається звичайним способом.

Синтаксис HTTP заголовка для поля Cookie


Коли запитується документ з HTTP сервера, броузер перевіряє свої cookie на
предмет відповідності домену сервера та іншої інформації. У випадку, якщо знайдені
задовольняють всім умовам значення cookie броузер посилає їх в серверу у
вигляді пари ім’я / значення:

  Cookie: NAME1=OPAQUE_STRING1; NAME2=OPAQUE_STRING2 …

Додаткові відомості


У випадку, якщо cookie приймає нове значення при наявному вже в броузері
cookie з співпадаючими NAME, domain і path, старе значення затирається новим. В
інших випадках нові cookies додаються.

Використання expires не гарантує збереження cookie протягом заданого
періоду часу, оскільки клієнт (броузер) може видалити запис внаслідок
нестачі виділеного місця або яких-небудь інших лімітів.

Клієнт (броузер) має наступні обмеження:


Якщо обмеження 300 або 20 перевищується, то віддаляється перший за часом
запис. При перевищенні 4К – коректність такого cookie страждає – відрізається
шматок запису (з початку цього запису) рівний перевищенню.

У разі кешування документів, наприклад, proxy-сервером, поле Set-cookie
HTTP заголовка ніколи не кешується.

Якщо proxy-сервер приймає відповідь, що містить поле Set-cookie в заголовку,
передбачається, що поле таки доходить до клієнта незалежно від статусу 304
(Not Modified) або 200 (OK).

Відповідно, якщо клієнтський запит містить в заголовку Cookie, то він
повинен дійти до сервера, навіть якщо встановлений If-modified-since.


Приклади


Нижче наведено кілька прикладів, що ілюструють використання cookies

Перший приклад:

Клієнт запитує документ і приймає відповідь:

  Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires=Wednesday, 09-Nov-99 23:12:40 GMT

Коли клієнт запитує URL з шляхом “/” на цьому сервері, він посилає:

  Cookie: CUSTOMER=WILE_E_COYOTE

Клієнт запитує документ і приймає відповідь:

  Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/

Коли клієнт запитує URL з шляхом “/” на цьому сервері, він посилає:

  Cookie: CUSTOMER=WILE_E_COYOTE; PART_NUMBER=ROCKET_LAUNCHER_0001

Клієнт отримує:

  Set-Cookie: SHIPPING=FEDEX; path=/foo

Коли клієнт запитує URL з шляхом “/” на цьому сервері, він посилає:

  Cookie: CUSTOMER=WILE_E_COYOTE; PART_NUMBER=ROCKET_LAUNCHER_0001

Коли клієнт запитує URL з шляхом “/ foo” на цьому сервері, він посилає:

  Cookie: CUSTOMER=WILE_E_COYOTE; PART_NUMBER=ROCKET_LAUNCHER_0001; SHIPPING=FEDEX

Другий приклад:

Клієнт приймає:

  Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/

Коли клієнт запитує URL з шляхом “/” на цьому сервері, він посилає:

  Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001

Клієнт приймає:

  Set-Cookie: PART_NUMBER=RIDING_ROCKET_0023; path=/ammo

Коли клієнт запитує URL з шляхом “/ ammo” на цьому сервері, він посилає:

  Cookie: PART_NUMBER=RIDING_ROCKET_0023; PART_NUMBER=ROCKET_LAUNCHER_0001

Коментар: тут ми маємо дві пари ім’я / значення з ім’ям “PART_NUMBER”. Це
спадщина з попереднього прикладу, де значення для шляху “/” додалося до
значенням для “/ ammo”.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*