Используют ли сеанс куки?

Это вопрос интервью, заданный месяц назад....

Используют ли сеанс куки? Если так, то как они это делают?

Предполагать Session["UserId"]=1 как эта переменная сеанса использует куки для внутреннего использования? Если это так, каково будет название куки и какова стоимость этого куки....

5 ответов

Решение

Хотя сами данные хранятся на сервере (или в SQL, если настроены таким образом), должен быть способ связать данные сеанса с конкретными пользователями.

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

От Microsoft:

ASP поддерживает состояние сеанса, предоставляя клиенту уникальный ключ, назначенный пользователю в начале сеанса. Этот ключ хранится в файле cookie HTTP, который клиент отправляет на сервер при каждом запросе. Затем сервер может прочитать ключ из файла cookie и повторно раздувать состояние сеанса сервера.

http://msdn.microsoft.com/en-us/library/ms972429.aspx

Каждая сессия будет иметь SessionID. А Session ID - это уникальный номер, который сервер присваивает конкретному пользователю во время его посещения (сеанса). И по умолчанию идентификатор сессии прикрепляется к cookie-файлу, и этот cookie-файл будет передаваться от клиента к серверу (и от сервера к клиенту) во время его запросов / ответов. И сервер будет идентифицировать сеанс на основе идентификатора сеанса, который извлекается из cookie.

Что касается cookie-файлов, то если ваш браузер не поддерживает cookie-файлы или отключен, то будут использоваться cookie-файлы. Так как это Cookieless, asp.net не может создать cookie для сохранения идентификатора сессии. Вместо этого идентификатор сессии будет передан в строке запроса...

Да, по умолчанию сеанс ASP.NET использует файлы cookie. Как вы сказали, это часто задаваемый вопрос на собеседовании по ASP.NET, вы можете посмотреть это видео, как ответить на него, а также у него есть другие перекрестные вопросы по этой теме. Но теперь длинный ответ.

Итак, как это работает. Прежде всего следует отметить, что фактические данные хранятся в сеансе. У клиента есть файл cookie, в котором хранится идентификатор сеанса. Идентификатор сеанса похож на идентификатор, который нужно прикрепить для этого клиента, и соответствующие данные хранятся в сеансе.

Когда клиент делает вызов, он отправляет cookie (sessionid) и, используя этот sessionid, состояние восстанавливается из переменных сеанса.

Да, управление сеансом осуществляется с использованием своего рода идентификатора сеанса, то есть файлов cookie. файлы cookie, хранящиеся в браузере, помогают серверной части идентифицировать пользователей.

Если вы получаете доступ к приложению из двух браузеров на одном компьютере, то будут поддерживаться два файла cookie, где каждый браузер является отдельным пользователем для серверного приложения Asp.Net.

Нет, хранится на сервере где-нибудь в папке tmp. сеансы - на стороне сервера, куки - на стороне клиента.

Другие вопросы по тегам