cookie与session的区别
一、cookie 与 session 的区别
cookie 把信息保留在客户端,把用户信息保留在用户本地不必总访问服务器。当发出页面请求时,把cookie里的信息从客户端发到服务器。一次有效,不能跨窗口。
session 的信息保存在服务器端,通过消耗服务器内存来保存信息。
是用户全局变量,对该用户的所有操作过程都有效。为每个用户分配一个sessionId,用来唯一的标识客户,用session.Abandon只会注销当前客户。
只要页面不关闭就一直存在,可以跨窗口存在。session主要用于在页面见传递变量。
总结:Cookies适合做保存用户的个人设置、爱好等,Session适合做客户的身份验证。
二、application、session、request、page
它们的作用范围由大到小。
page只在当前页面有效。
request在一次请求的全过程中有效。包括用户请求访问的当前web组件,以及,和当前web组建共享同一请求的其他web组件(比如jsp页面中include的,forward标记包含的)。存放在HttpServletRequest对象中。
一次请求的全过程:指从服务器端代码(如jsp、Servlet)接受请求并响应开始,至响应完毕(无结果或将结果完全送回客户端并断开连接)的期间。
session是用户全局变量,在整个会话期间都有效。只要页面不关闭就一直有效(或者直到用户一直未活动导致会话过期,或调用HttpSession的invalidate()方法)。存放在HttpSession对象中。
application是程序全局变量,对每个用户每个页面都有效。存放在ServletContext对象中。
总结:当数据只需要在下一个forward有用时,用request就够了;
若数据不只是在下一个forward有用时,就用session。
上下文,环境信息之类的,用application。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库