Каково различие между Сессией и Cookie?

Я хотел бы использовать zip (), чтобы получить читаемый и простой способ:

result = ''
for cha, chb in zip(u, l):
    result += '%s%s' % (cha, chb)

print result
# 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'
37
задан cgreeno 16 March 2009 в 14:32
поделиться

4 ответа

Сессии

Сессии хранятся в расчете на пользователя в памяти (или альтернатива Состояние сеанса ) на сервере. Сессии используют cookie ( сеансовый ключ ) для связи пользователя с сессией. Это означает, что никакие "чувствительные" данные не хранятся в cookie на пользовательской машине.

Сессии обычно используются для поддержания состояния, когда Вы перешли через веб-сайт. Однако они могут также использоваться для содержания объектов, к которым обычно получают доступ. , Только если Состояние сеанса установлено на InProc, если установлено на другой режим Session-State , объект должен также сериализуемый.

Session["userName"] = "EvilBoy";

if(Session["userName"] != null)
  lblUserName.Text = Session["userName"].ToString();

Cookie

Cookie хранятся в расчете на пользователя на пользовательской машине. Cookie является обычно просто небольшим количеством информации. Cookie обычно используются для простого пользовательского предпочтительного ect цветов настроек. Никакая уязвимая информация никогда не должна храниться в cookie.

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

//add a username Cookie
Response.Cookies["userName"].Value = "EvilBoy";
Response.Cookies["userName"].Expires = DateTime.Now.AddDays(10);
//Can Limit a cookie to a certain Domain
Response.Cookies["domain"].Domain = "Stackoverflow.com";

//request a username cookie
if(Request.Cookies["userName"] != null)
   lblUserName.Text = Server.HtmlEncode(Request.Cookies["userName"].Value);

заметка на полях

стоит упомянуть, что ASP.NET также поддерживает управление состоянием cookieless

61
ответ дан BornToCode 10 October 2019 в 08:34
поделиться

Cookie является клиентским устройством хранения данных Ваших переменных. Это сохранило на клиентской машине браузером физически. Это - объем, широкая машина. Различные пользователи в той же машине могут считать тот же cookie.

из-за этого:

  1. Вы не должны хранить уязвимые данные на cookie.
  2. Вы не должны хранить данные, которые принадлежат одной учетной записи пользователя.
  3. Cookie не имеет никакого эффекта на ресурсы сервера.
  4. Cookie истекает в указанную дату Вами.

Сессия является серверным устройством хранения данных Ваших переменных. Значение по умолчанию, это сохранило на памяти сервера. Но можно настроить его для хранения в SqlServer. Это - объем, широкий браузер. Тот же пользователь может выполнить два или больше браузера, и каждый браузер имеет свою собственную сессию.

из-за этого:

  1. можно сохранить уязвимые данные на сессии.
  2. Вы не должны сохранять все на сессии. это - трата ресурсов сервера.
  3. После того, как пользователь закрывает браузер, тайм-аут сессии очищает всю информацию. (значение по умолчанию составляет 20 минут)
18
ответ дан Canavar 10 October 2019 в 08:34
поделиться

Cookie является строкой identifaction, сохраненной сервером (у кого есть домен) в браузере пользователя, который посещает сервер/домен.

сессия А является единицей, возможно, переменных, состояния, настройки, в то время как определенный пользователь получает доступ к серверу/домену в определенный период времени. Вся информация о сессии находится в традиционной модели, сохраненной на сервере (!)

, поскольку многие параллельные пользователи могут посетить сервер/домен одновременно, сервер должен быть в состоянии отличить много различных параллельных сессий и всегда присваивать правильную сессию правильному пользователю. (И никакой пользователь не может "украсть" сессию другого использования)

, Это сделано через cookie. Cookie, который хранится в браузере и который должен в этом случае быть случайной комбинацией как s73jsd74df4fdf (таким образом, это не может быть предположено) отправляется по каждому запросу с браузера на сервер, и сервер может присвоить и использовать корректную сессию для своих ответов (просмотры страницы)

, cookie позволяет серверу распознавать браузер/пользователя. Сессия позволяет серверу помнить информацию между различными просмотрами страницы.

11
ответ дан Karl Thorwald 10 October 2019 в 08:34
поделиться

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

2
ответ дан 27 November 2019 в 04:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: