Несмотря на значительный опыт в веб-разработке с куками работал мало - в основном использовал их для реализации аутентификации. Но вот решил разобраться, что завуалировано под надписями вроде:
Совместное использование файлов cookie помогает улучшить функциональность сайта и оптимизировать ваш опыт.
Особенно у
Тёмы Лебеведа креативно:
Мы используем куки на всех своих сайтах, включая этот, потому что без кук вообще весь интернет работал бы через жопу
Почему нельзя просто сказать: "На данном сайте аутентификация реализована с помощью куки"? Всё максимально ясно, понятно, без обтекаемых формулировок. Будучи честным со своими пользователями, я бы не хотел использовать обтекаемые формулировки наподобие приведённых ранее, потому что такое чувство что я их обманываю, причём сам не знаю в чём именно обманываю.
Что я уже знаю о куках?
- Куки - это в сухом остатке сериализованный ассоциативный массив наподобие параметров запроса в URI-строке или JSON. Как эти сериализованные данные передавать и как их хранить - другой вопрос.
- А передаются они через HTTP-заголовки, которые тоже по сути являются ассоциативным массивом. Насколько я понимаю, на серверной стороне устанавливаются ключи и значения для кук и затем они как один из загловков отправляются с ответом, а при последующих запросах куки автоматически включаются в заголовки запросов браузером.
- Как хранить данные из кук на сервере - опять же, никакого единого правильного ответа нет. Можно использовать любые средства хранения данных.
- На клиентской стороне, насколько я знаю, они хранятся в виде файлов, но через средства разработчика можно посмотреть ключи и значения без посредничества файлов.
- Где=то также читал, что куки не рекомендуются для хранения данных на клиентской стороне - для этого лучше использовать более современные средства, такие как LocalStorage, SessionStorage, IndexedDB
Причём тут аналитика?
Когда я спрашивал о том, почему нельзя просто сказать: "На данном сайте авторизация реализована с помощью куки", многим наверняка сразу захотелось ответить не читая вопрос до конца: "Куки используются для сбора личных данных, о чём владельцы сайтов не любят говорить напрямую". Но если это и ответ, то он скорее порождает новые вопросы, чем вносит ясность в ситуацию. Во-первых: чем куки так уникальны, что данные аналитики поведения пользователя надо передавать на сервер именно через них? Почему это их нельзя просто отправить их через тело запроса как любые другие данные? Причём так ведь наверняка делают иногда, но при этом сообщений наподобие "Мы используем fetch API чтобы улучшить функциональность сайта и оптимизировать ваш опыт. " нет! Так что что-то здесь не так и самое время в этом разобраться.