Page 234 - 4785
P. 234
Ініціатором записи cookie виступає сервер. Якщо у відповіді
сервера присутній поле заголовка Set-cookie, клієнт сприймає це як
команду на запис cookie. Надалі, якщо клієнт звертається до сервера,
від якого він раніше прийняв поле заголовка Set-cookie, крім іншої
інформації він передає серверу дані cookie. Для передачі зазначеної
інформації серверу використовується поле заголовка Cookie.
Для того щоб в загальних рисах уявити собі, як відбувається
обмін даними cookie, розглянемо наступний приклад. Припустимо,
що клієнт передає запити на сервери А, В і С. Припустимо також,
що сервер В, на відміну від А і С, передає клієнту команду записати
cookie. Послідовність запитів клієнта серверу і відповідей на них
буде виглядати приблизно так.
1. Передача запиту серверу А.
2. Отримання відповіді від сервера А.
3. Передача запиту серверу В.
4. Отримання відповіді від сервера В. До складу відповіді
входить поле заголовка SetCookie. Отримавши його, клієнт записує
cookie на диск.
5. Передача запиту серверу С. Незважаючи на те що на диску
зберігається запис cookie, клієнт не вживає ніяких спеціальних дій,
оскільки значення cookie було записано з ініціативи іншого сервера.
6. Отримання відповіді від сервера С.
7. Передача запиту серверу А. В цьому випадку клієнт також
ніяк не реагує на той факт, що на диску зберігається cookie.
8. Отримання відповіді від сервера А.
9. Передача запиту серверу В. Перед тим як сформувати
запит, клієнт визначає, що на диску зберігається запис cookie,
створена після отримання відповіді від сервера В. Клієнт перевіряє,
чи задовольняє даний запит деяким вимогам, і, якщо перевірка дає
позитивний результат, включає в заголовок запиту поле Cookie.
Таким чином, процедуру запису та отримання cookie можна
уявити собі як своєрідний "запит" сервера, інкапсульованний в його
відповіді клієнту. Відповідно отримання cookie також можна уявити
собі як відповідь клієнта, інкапсульованний в складі запиту того ж
серверу.
Розглянемо докладніше, які дані передаються в поле
заголовка Set-cookie і як вони впливають на поведінку клієнта.
232