Разбираемся в мобильной разработке (Android/iOS) и пытаемся выяснить, зачем оно так устроено
Статистика/цены: @dolgo_polo_dev_stats
По вопросам/рекламе: @dolgopolovdenis
Post #209
2.24K

🧬 Чем cookie отличаются от headers?
Это база , но если никогда не работали с cookies, может быть интересно
В мобильной разработке про cookies вспоминаешь в 2 случаях:
🔵если нужен удобный способ отправлять ключ-значение на все http-запросы на определенный домен
🔵если речь идет о WebView
Коротко:
🔵header — это ключ-значение, которое добавляется к конкретному сетевому запросу через Interceptor (или Retrofit)
🔵cookie — это ключ-значение, которое привязывается к домену (например, domain = .ya.ru) и отправляется на все http-запросы на этот домен
📚 Где хранятся cookies?
В хранилище для cookies. За это отвечают классы
cookie-хранилища сами разруливают, на какие запросы нужно отправлять куку, а на какие нет — гибко настраивать это поведение можно с помощью cookie-атрибутов (httpOnly, secure, sameSite...)
📚 Откуда появляются cookies?
🔵бэк присылает cookies в http-респонсе в хэдере
🔵также cookies можно добавить/удалить из кода
📚 Когда отправляются cookies?
Перед каждый сетевым запросом сетевой клиент (или WebView) идет в cookie-хралище и сообщает ему, на какой домен и путь (path) собирается сделать http-запрос
cookie-хранилище отдает список cookies, "привязанных" к этому домену
Сетевой клиент добавляет эти cookies в хэдер
➕ Когда удобно?
🔵для авторизационных токенов
🔵для флагов/значений, которые нужно передавать на все сетевые запросы определенного домена. например, выбранный пользователем язык
➖ Когда неудобно?
🔵когда нужно отправить какое-то значение только на 1 сетевой запрос — тут лучше подойдет header
@dolgo_polo_dev
Это база , но если никогда не работали с cookies, может быть интересно
В мобильной разработке про cookies вспоминаешь в 2 случаях:
🔵если нужен удобный способ отправлять ключ-значение на все http-запросы на определенный домен
🔵если речь идет о WebView
Коротко:
🔵header — это ключ-значение, которое добавляется к конкретному сетевому запросу через Interceptor (или Retrofit)
🔵cookie — это ключ-значение, которое привязывается к домену (например, domain = .ya.ru) и отправляется на все http-запросы на этот домен
📚 Где хранятся cookies?
В хранилище для cookies. За это отвечают классы
OkHttp: CookieJar, CookieHandler, CookieStore
WebView: webkit.CookieManager
cookie-хранилища сами разруливают, на какие запросы нужно отправлять куку, а на какие нет — гибко настраивать это поведение можно с помощью cookie-атрибутов (httpOnly, secure, sameSite...)
📚 Откуда появляются cookies?
🔵бэк присылает cookies в http-респонсе в хэдере
"Set-Cookie"🔵также cookies можно добавить/удалить из кода
📚 Когда отправляются cookies?
Перед каждый сетевым запросом сетевой клиент (или WebView) идет в cookie-хралище и сообщает ему, на какой домен и путь (path) собирается сделать http-запрос
cookie-хранилище отдает список cookies, "привязанных" к этому домену
Сетевой клиент добавляет эти cookies в хэдер
"Cookies" и отправляет вместе с сетевым запросом➕ Когда удобно?
🔵для авторизационных токенов
🔵для флагов/значений, которые нужно передавать на все сетевые запросы определенного домена. например, выбранный пользователем язык
➖ Когда неудобно?
🔵когда нужно отправить какое-то значение только на 1 сетевой запрос — тут лучше подойдет header
@dolgo_polo_dev
- 👍 35
- ❤ 5
- 🦄 5














