# http.cookies

<https://docs.python.org/3/library/http.cookies.html>

<https://docs-python.ru/standart-library/modul-http-cookies-python/>

<https://www.programcreek.com/python/example/103864/http.cookies.SimpleCookie>

<https://runebook.dev/ru/docs/python/library/http.cookies>

<https://runebook.dev/ru/docs/python/library/http.cookiejar>

У веб-застосунку файл cookie — це невеликий фрагмент даних, який зберігається на пристрої користувача (зазвичай у браузері) і відправляється назад на сервер із кожним наступним запитом. Файли cookie часто використовуються для зберігання налаштувань користувача, для утримання користувачів на сайті, для зберігання інформації про сеанс і для показу цільової реклами.

Файли cookie встановлюються сервером і можуть бути прочитані лише сервером, який їх встановив. Вони зберігаються в браузері користувача і відправляються назад на сервер із кожним запитом до того ж сервера.

Файли cookie можна встановлювати та читати за допомогою заголовків Set-Cookie та Cookie у протоколі HTTP.

Існує два типи файлів cookie:

* **Сеансові файли cookie** - ці файли cookie є тимчасовими та видаляються, як тільки користувач закриває браузер. Вони використовуються для зберігання інформації, необхідної для кількох запитів на одному сеансі, наприклад, для утримання користувача на сайті або для відстеження товарів у кошику.
* **Постійні файли cookie** - ці файли cookie зберігаються на пристрої користувача протягом тривалого часу, навіть після закриття браузера. Вони використовуються для запам'ятовування користувацьких уподобань або для відстеження історії перегляду користувачем протягом тривалого часу.

В Python куки передаються через змнінну оточення `os.environ`, але використовуючи вбудовані модулі ми можемо легко встановити та отримати Cookie..

**Встановити куку:**

```python
from http.cookies import SimpleCookie

cookie = SimpleCookie()
cookie['username'] = 'John'
cookie['username']['expires'] = 30 * 24 * 60 * 60
cookie['username']['path'] = '/'
print(cookie.output())

# set content_type here!
```

Цей код встановлює Cookie з ім'ям "username" та значенням "John". Cookie буде дійсним протягом 30 днів. Зверніть увагу, що параметр "/" у шляху означає, що цей Cookie буде доступний на всьому сайті.

**Читати куку:**

```python
import os
from http.cookies import SimpleCookie

cookie = SimpleCookie(os.environ.get('HTTP_COOKIE'))
# set content_type here!
print(cookie['username'].value)
```

## Links

{% content-ref url="/pages/CnvqMhFG4EKCyd3sptDN" %}
[cookies (js)](/enote/progr/javascript/cookies-js.md)
{% endcontent-ref %}

Див. також: [cookies in javascript](/enote/progr/javascript/cookies-js.md)

HTTP cookies на практике - <https://pythonist.ru/http-cookies-na-praktike/>

A practical, Complete Tutorial on HTTP cookies - <https://www.valentinog.com/blog/cookies/>

Модуль http.cookies - <https://docs-python.ru/standart-library/modul-http-cookies-python/>

http.cookies-управление состоянием HTTP - <https://runebook.dev/ru/docs/python/library/http.cookies>

Обработка форм, cookies - <https://pythonworld.ru/web/cgi-2.html>

Веб-аутентификация: файлы cookies или токены? - <https://proglib.io/p/veb-autentifikaciya-fayly-cookies-ili-tokeny-2021-08-14>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://olexsyn.gitbook.io/enote/progr/python/modules/http.cookies.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
