Cookies vs session

(Ответов: 6, Просмотров: 1286)
  1. Студент Аватар для GreenBanan
    • Регистрация: 25.12.2012
    • Сообщений: 90
    • Репутация: 16
    Возник вопрос, в чем принципиальное различие кук и сессий (кроме того, что сессии на сервере хранятся)? И что выгоднее использовать, я всегда использую куки - друг сессии, вот и обратились к более опытным форумчанам что бы рассудить наш спор.
    Спасибо.
    • 0
  2. Гуру Аватар для Sabirchik
    • Регистрация: 18.02.2012
    • Сообщений: 971
    • Репутация: 232
    • Webmoney BL: ?
    Сookies — файлы, хранящиеся на клиентской стороне.
    Session — файлы, хранящиеся на сервере.

    Кукисы можно подделать, украсть, а сессию только украсть.
    • 2

    Спасибо сказали:

    AntoXa(29.12.2012), GreenBanan(29.12.2012),
  3. Студент Аватар для GreenBanan
    • Регистрация: 25.12.2012
    • Сообщений: 90
    • Репутация: 16
    Ну я об этом знал. А кроме этого, есть какие либо еще?
    • 0
  4. Гуру Аватар для Sabirchik
    • Регистрация: 18.02.2012
    • Сообщений: 971
    • Репутация: 232
    • Webmoney BL: ?
    Немного погуглив, нашел вот что(цитирую):

    Развернуть текст

    Сессия - это сеанс, во время которого система различает различных пользователей. Реализуется она по-разному. В том числе, и при помощи cookies.

    Как правильно написал Саня, куки - просто файлики, которые хранятся у клиента и посылаются каждый раз при посылке запроса на загрузку страницы с нужного домена. Проблемы тут не две, а три: куки можно не только подделать и украсть. Их еще можно не принимать. Тогда создать сессию не получится. (Правда, с отключенными кукисами ходят, пожалуй, только гики и извращенцы).

    В пхп сессии реализуются довольно сложно, но эффективно. Сначала генерируется идентификатор сессии. Затем, на сервере создается файл, имя которого совпадает с этим идентификатором. В этот файл могут писаться какие-то данные о пользователе. Сам пользователь получает этот идентификатор сессии в cookie. Если куки у юзера отключены, то пхп начинает динамически изменять ссылки так, чтобы идентификатор сессии передавался в строке запроса, то есть, get-методом. Таким образом обеспечивается бОльшая надежность, по сравнению с использованием только куки.

    Кроме того, при использовании пхп-сессий, клиент держит у себя только куку с идентификатором сессии, а все данные хранятся на сервере, поэтому подделать их(данные) нельзя. Можно только передать идентификатор не своей сессии, тогда получится кража сесии.

    Нужно еще заметить, что механизм сессий в пхп работает все-таки с файлами, причем проводит их разбор, для вычленения данных, поэтому, этот метод работает несколько медленнее, чем создание сессии при помощи простых куков.

    Что выбирать - решать нужно в зависимости от ситуации. Если нужна надежность, поддержка максимального количества юзверей, и быстрота не роляет - юзайте сессии. Если нужна скорость и простота - куки.

    В конечном итоге, в пхп почти всегда для создания сессий нужно пользоваться пхп-шными сессиями. Куки применяют для запоминания некритичных данных о пользователе (логин для комментариев или настройки меню).
    [свернуть]
    • 1

    Спасибо сказали:

    GreenBanan(29.12.2012),
  5. Новичок Аватар для zexis
    • Регистрация: 09.08.2005
    • Сообщений: 17
    • Репутация: 302
    Для хранения важной информации лучше использовать сессии, так как пользователь не может изменить переменные в сессии, а в куках может поставить какие захочет.
    • 0
  6. Студент Аватар для simon
    • Регистрация: 30.12.2012
    • Сообщений: 68
    • Репутация: 6
    Лучше использовать сессии, надежнее.
    Форум вопросов и ответов для разработчиков и программистов DevHelper http://www.devhelper.ru
    • 0
  7. Новичок Аватар для maxwallaby
    • Регистрация: 18.01.2013
    • Сообщений: 7
    • Репутация: 0
    Лучше всего использовать и сессии и куки одновременно в связке. Время жизни сессии не позволит, к примеру, на длительное время запомнить некоторые пользовательские данные\настройки. А увеличение длительности её жизни не очень хорошо скажется на результативности работы приложения. Поэтому некоторые маловажные данные и идентификатор сессии лучше хранить в куках и обновлять по мере активности, а сессии нужны только на время пребывания пользователя на сайте, не более.
    • 0

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры