> For the complete documentation index, see [llms.txt](https://olexsyn.gitbook.io/enote/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olexsyn.gitbook.io/enote/progr/python/modules/http.cookies.md).

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