首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建持久化与非持久化cookie?

如何创建持久化与非持久化cookie?
EN

Stack Overflow用户
提问于 2010-10-06 13:57:55
回答 4查看 89.7K关注 0票数 61

我似乎想不出如何创建持久化与非持久化cookie。它们之间有什么不同,比如,在发回的HTTP报头方面?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-06 14:21:00

Cookie有一个隐式或显式设置的过期日期,该日期控制它们的持续时间(取决于实际执行的用户代理)。cookie可能仅在会话期间(或更短的时间段)持续存在。

如果cookie是有效的,它将与HTTP请求一起传递到它所来自的域。只有设置cookie的域才能读取cookie (尽管有一些方法可以利用这一点,例如跨站点脚本)。

  • 如果希望cookie在特定时间过期,请使用您选择的客户端或服务器端语言为其设置过期日期。

  • 如果希望cookie在会话结束时过期,请不要设置过期日期。

From the RFC (emphasis mine):

cookie设置器可以指定删除日期,在这种情况下,cookie将在该日期被删除。

如果cookie设置器未指定日期,则一旦用户退出浏览器,就会删除cookie。

因此,指定日期是使cookie在会话中存活的一种方法。因此,具有过期日期的cookies称为

作为一个示例应用程序,购物站点可以使用持久cookie来存储用户放置在购物篮中的商品。(实际上,cookie可能指的是存储在购物站点的数据库中的条目,而不是您的计算机上的条目。)这样,如果用户在没有进行购买的情况下退出浏览器并在稍后返回,他们仍然会在购物篮中找到相同的商品,因此他们不必再次寻找这些商品。如果没有为这些cookies指定过期日期,它们将在浏览器关闭时过期,并且有关篮子内容的信息将会丢失。

票数 74
EN

Stack Overflow用户

发布于 2011-08-02 18:28:42

ASP.NET中有两种类型的cookies

持久cookies:

Cookie存储在您的计算机硬盘上。它们保留在您的硬盘上,web服务器可以访问它们,直到它们被删除或过期。

代码语言:javascript
复制
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);
}

非持久性cookies:

Cookie仅在web浏览器运行时保存。只有在您关闭浏览器后,web服务器才能使用它们。它们不会保存在磁盘上。

代码语言:javascript
复制
public void SetNonPersistentCookies(string name, string value)
{
    HttpCookie cookie = new HttpCookie(name);

    cookie.Value = value;

    Response.Cookies.Add(cookie);
}
票数 10
EN

Stack Overflow用户

发布于 2011-06-07 17:49:07

会话cookie

代码语言:javascript
复制
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
Response.Cookies.Add(cookie);

带有特定时间戳的Cookie (.NET DateTime library)

代码语言:javascript
复制
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.Today.AddMonths(12); //or AddMinutes, or AddHours...
Response.Cookies.Add(cookie);

持久性Cookie

代码语言:javascript
复制
HttpCookie cookie = new HttpCookie("myCookieName", "myCookieValue");
cookie.Expires = DateTime.MaxValue;
Response.Cookies.Add(cookie);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3869821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档