В cookie можно сохранить данные на очень длительное время, в то время как в сессии на сервере данные будут храниться только в течении самой сессии. Это идеально когда вы хотите сохранить какие-то данные для неавторизованных пользователей, например: человек пришёл на ваш сайт, на сайте используются уведомления, которые перед показом спрашивают "хочет ли человек получать ваши уведомления", ответ на этот вопрос лучше сохранить в cookie. В следующий раз, когда этот пользователь зайдёт к вам на сайт и сессия у него будет уже новая, но в cookie информация о том, что он не хочет смотреть уведомления, сохранится.