Я не могу понять, как создать постоянный и непостоянный файл cookie. Чем они отличаются, скажем, в HTTP-заголовках, которые отправляются обратно?
Как создать постоянный и непостоянный файл cookie?
Ответы (4)
Файлы cookie имеют неявно или явно установленную дату истечения срока действия, которая определяет, как долго они сохраняются (в зависимости от фактического применения этого агентом пользователя). Файл cookie может сохраняться только на время сеанса (или даже на более короткий период).
Если файл cookie действителен, он будет передан вместе с HTTP-запросом в домен, из которого он был отправлен. Только домен, который установил файл cookie, может прочитать файл cookie (хотя есть способы использовать это, например, межсайтовый скриптинг).
Если вы хотите, чтобы срок действия файла cookie истекал в определенное время, установите для него дату истечения срока действия, используя клиентский или серверный язык по вашему выбору.
Если вы хотите, чтобы срок действия файла cookie истекал по завершении сеанса, не устанавливайте дату истечения срока действия.
Установщик файлов cookie может указать дату удаления, и в этом случае файл cookie будет удален в эту дату.
Если установщик файлов cookie не указывает дату, файл cookie удаляется, как только пользователь закрывает свой браузер.
В результате указание даты — это способ сохранить файл cookie между сеансами. По этой причине файлы cookie со сроком действия называются постоянными.
В качестве примера приложения торговый сайт может использовать постоянные файлы cookie для хранения товаров, которые пользователи поместили в свою корзину. (На самом деле файл cookie может относиться к записи в базе данных, хранящейся на сайте магазина, а не на вашем компьютере.) Таким образом, если пользователи закроют свой браузер, не совершив покупку, и вернутся позже, они по-прежнему найдут те же товары в базе данных. корзину, чтобы им не приходилось снова искать эти предметы. Если бы для этих файлов cookie не был указан срок действия, срок их действия истек бы при закрытии браузера, и информация о содержимом корзины была бы потеряна.
max-age
?
- person Aaron Franke; 19.11.2019
max-age
: tools.ietf.org /html/rfc6265#page-21
- person Tim Medora; 19.11.2019
В ASP.NET есть два типа файлов cookie.
Постоянные файлы cookie:
Файлы cookie хранятся на жестком диске вашего компьютера. Они остаются на вашем жестком диске и могут быть доступны веб-серверам до тех пор, пока они не будут удалены или не истечет срок их действия.
public void SetPersistentCookies(string name, string value)
{
HttpCookie cookie = new HttpCookie(name);
cookie.Value = value;
cookie.Expires = Convert.ToDateTime(“12/12/2008″);
Response.Cookies.Add(cookie);
}
Непостоянные файлы cookie:
Файлы cookie сохраняются только во время работы вашего веб-браузера. Они могут использоваться веб-сервером только до тех пор, пока вы не закроете браузер. Они не сохраняются на вашем диске.
public void SetNonPersistentCookies(string name, string value)
{
HttpCookie cookie = new HttpCookie(name);
cookie.Value = value;
Response.Cookies.Add(cookie);
}
Сеансовый файл cookie
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
Response.Cookies.Add(cookie);
Файл cookie с определенной отметкой времени (библиотека .NET DateTime)
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.Today.AddMonths(12); //or AddMinutes, or AddHours...
Response.Cookies.Add(cookie);
Постоянный файл cookie
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.MaxValue;
Response.Cookies.Add(cookie);
Постоянные файлы cookie имеют дату истечения срока действия, установленную веб-сервером. По сути, этот тип файлов cookie сохраняется на вашем компьютере, поэтому, когда вы закрываете его и снова запускаете, файл cookie все еще там. По истечении срока годности он уничтожается владельцем.
Ссылка: https://www.cookiepro.com/knowledge/what-is-a-persistent-cookie/
Если файл cookie не содержит даты истечения срока действия, он считается сеансовым/непостоянным файлом cookie.
Таким образом, в основном постоянные файлы cookie имеют атрибут expires
, например.
expires="Wdy, DD-Mon-YYYY HH:MM:SS GMT"