cookie-session

cookie生成及日期设置:字符串格式的键值对存储,Response.Cookies.Append("userId","666",new CookieOptions{Expires=Datetime.Now.AddDays(7)});

cookie的删除:Response.Cookies.Delete("userId");看起来像是服务器删除了cookie,但不是,服务器无法删除cookie,它是将cookie过期时间设置为当前以前的时间(ASP.NET设置为1970年),然后发送给浏览器;

session:HttpContext.Session.SetInt32("age",33),

基于cookie,把主要数据存放于服务器(默认IIS的内存),只把session的Id存放在cookie中传递,服务器通过sessionId定位session数据;

session与cookie区别:

共同点:都是用来追踪浏览器用户身份的会话方式,弥补http无状态缺陷;

不同:

1,数据存放位置:cookie数据保存在客户端,session数据保存在服务器;

2,安全性:cookie不是很安全,因为可以伪造,考虑安全性,应使用session

3,性能:session会在一定时间内,保存在服务器上,当访问增多时,会比较占用服务器的性能,考虑减轻服务器性能时,应使用cookie;

4,限制:单个cookie保存的数据不超过4K,很多浏览器都限制一个站点最多保存20个cookie;

所以,应将登录等重要信息存放在session,其它数据可以存放在cookie中;

session存放位置:

存放位置 速度 特点
IIS进程中内存 最快 不稳定,因为IIS重启/Application pool回收等丢失
一个独立的windows服务 比较快 比较稳定,一般来说只有服务器重启才会丢失
数据库 不快 稳定,在指定的过期时间内不丢失;不担心size,大量session时使用
分布式缓存 同缓存 在数据库性能不足时使用
如果这篇文章,对你有帮助,请点击关注,我会持续更新......
原文地址:https://www.cnblogs.com/-GoFurther/p/13753125.html