JackShcherbakov
@JackShcherbakov

Стоит ли все хранить в SESSION, или же что-то лучше хранить в COOKIE?

[Модератор, в интернете нету ясного ответа. И ответ "что хотите, то и храните" меня не совсем устраивает. Спасибо за понимание]
Здравствуйте! Уже несколько дней мучает этот вопрос, а ясного ответа в интернете нет. Я понимаю как устроены куки и сессии. Благодаря ключу, обычно называемому PHPSESSID, сервер может идентифицировать юзера и создать/получить соответствующую сессию, в которой хранятся некие данные.

Итак, куки - на клинте, сессии - на сервере.

Но что где хранить? Понятно, что всякие секретные данные лучше хранить в сессии, но что конкретно нужно хранить в куки? Модератор, перед тем как удалив мой вопрос написал что-то вроде :"что хотите, то и храните". Все равно не понятно! Зачем что-то записывать в куки, когда можно не нагружая клиент всякими куками, а оставить ему только PHPSESSID обойтись только сессией? Ведь для чего-то была создана функция setcookie(). Где нужно использовать именно куки, кроме как всяких токенов и другой информации, благодаря которой осществляется доступ к сессии. Где cookie незаменим?
  • Вопрос задан
  • 512 просмотров
Пригласить эксперта
Ответы на вопрос 4
  • Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Ведь для чего-то была создана функция setcookie()

    столько там еще функций созданы для чего-то! Но вы же их не бежите использовать потому что они есть?)
    Только при надобности функциональной.

    все хранить в SESSION

    а чтовы там храните прям так массово? Для авторизации достаточно держать там ID юзера, на этом функция сессии кончается.

    Где cookie незаменим?

    в сессиях))))

    Так что храните что хотите как и сказали, в основном в куки идёт всякая информация так или иначе связанная с тем что происходит на фронте. Но при это которая нафиг не упала на бекенде.
    Все что угодно от запомнить на каком слайде слайдер остановился до запомнить что юзер выбрал при сортировке/фильтрации таблицы какой-нибудь.
    Ответ написан
  • rework
    @rework
    Помог ответ? В благодарность отметь его решением
    В cookie можно сохранить данные на очень длительное время, в то время как в сессии на сервере данные будут храниться только в течении самой сессии. Это идеально когда вы хотите сохранить какие-то данные для неавторизованных пользователей, например: человек пришёл на ваш сайт, на сайте используются уведомления, которые перед показом спрашивают "хочет ли человек получать ваши уведомления", ответ на этот вопрос лучше сохранить в cookie. В следующий раз, когда этот пользователь зайдёт к вам на сайт и сессия у него будет уже новая, но в cookie информация о том, что он не хочет смотреть уведомления, сохранится.
    Ответ написан
  • @Arik
    А как долго вы можете позволить себе хранить сессии на сервере? если человек больше не зайдет? Если это бот какой нагенерировал вам лям другой сессий? Куки помогают надолго сохранить какие-то значения, по которым через продолжительное время мы сможем понять что человек у нас уже был и выбрал такие-то опции. С другой стороны куки отправляются при каждом запросе, неважно это запрос страницы, картинки, скриптов, стилей, аякс.. Всегда посылаются все или почти все куки. так что с ними нужно быть аккуратнее, не говоря про то что их можно подделать или прочитать. Также надо учитывать размер данных отправленных в куки, много примеров видел когда отвалился nginx из-за больших кук, пользователя потеряли, в логах толком ничего не увидели.
    Ответ написан
  • Maksclub
    @Maksclub
    maksfedorov.ru
    В куку можно ставить безобидные даные:
    • язык пользователя или город
    • тема (в плане дизайна)
    • какие-то метки для маркетинга (первый источник или ref-ссылка)
    • можно хранить корзину (id товаров)
    • какие-то даты
    • id пользователя (но не из БД!!! а какой-то идентификатор безобидный для статистики)
    • хранить сколько раз лайкнул на этой странице и куда кликнул
    • хранить состояние модальног окона (выдавали ему уже всплывашу или нет, чтобы не при каждой странице грухзить окно и не раздражать)
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы