cookie和session的区别如下:
1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。
2、session中保存的是对象,cookie中保存的是字符串。
3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
4、session需要借助cookie才能正常
应用场景如下:
1.session就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为JSESSIONID的输出cookie,
2.persistent cookies和session cookie的区别了,网上那些关于两者安全性的讨论也就一目了然了,session cookie针对某一次会话而言,会话结束session cookie也就随着消失了,而persistent cookie只是存在于客户端硬盘上的一段文本(通常是加密的),而且可能会遭到cookie欺骗以及针对cookie的跨站脚本攻击,自然不如 session cookie安全了。
3.通常session cookie是不能跨窗口使用的,当新开了一个浏览器窗口进入相同页面时,系统会赋予一个新的sessionid,这样信息共享的目的就达不到了,可以先把sessionid保存在persistent cookie中,然后在新窗口中读出来,就可以得到上一个窗口SessionID了,这样通过session cookie和persistent cookie的结合就实现了跨窗口的session tracking(会话跟踪)。
cookie存于客户端。
session存于服务器端。
服务器鉴别session需要至少从客户端传来一个session_id,session_id通常存于cookie中,或是url(很少用url,主要涉及安全性和SEO的影响)所以在工程上session离了cookie基本没法用,但是cookie可以单独使用,不过cookies是明文存储,安全性很低,只使用cookie的话盗取了cookie基本就获取了用户所有权限。
另外浏览器每次访问网页都会带上cookie,如果cookie存储内容过多,会严重占用服务器端带宽,影响性能。
所以如果你是简单或且安全不敏感的应用,可以只使用cookie。
否则还是需要cookie配合session。
不过现有语言和框架基本都可以让你简单地使用session,而无需考虑session和cookie的关系