cookie 和session 的区别: 1、cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session。 3、session会在一定时间内保存在服务器上。
cookies 一般放到系统磁盘上:
下面是Windows下的绝对位置:
C:\Documents and Settings\Administrator\Cookies
下面的系统变量位置:
%USERPROFILE%\cookies
在cookies下有很多txt的文件 这里面记录的都是Cookie信息!
正常请款下要用servlet 或JSP 的request去得到cookie方法 去访问它!session也是一样的
一般你的项目运行在Tomcat这样的WEB容器下 都可以适用JSP 或Servlet去访问的!
如果想自己去解析cookie也可以自己写个输入输出流来读取!自己做的话问题很多最重要的是因为位置 *** 作系统不同cookies的位置也有变化!
session是存储在服务器端的,cookie是存储在客户端的,所以session的安全性要高于cookie。
再者,我们获取的session里的信息是通过存放在会话cookie里的sessionId获取的。
因为session是存放在服务器里的,所以session里的东西不断增加会增加服务器的负担,我们会把一些重要的东西放在session里,不太重要的放在客户端cookie里。
cookie分为两大类,一个是会话cookie和持久化cookie,他们的生命周期和浏览器是一致的,浏览器关了会话cooki也就消失了,而持久化会存储在客户端硬盘中。
我想把所有session 全换成 cookie 服务器session刷新太快了,10秒后台就退出。
这个也是要改的地方
if Password<>passwork2 then
session("my_system")=""
session("adminClass")=""
responsewrite "<script language=javascript> alert('密码有误');historyback(-1);</script>"
responseend
end if
具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
Cookie的优缺点:
优点:极高的扩展性和可用性
通过良好的编程,控制保存在cookie中的session对象的大小。
通过加密和安全传输技术(SSL),减少cookie被破解的可能性。
只在cookie中存放不敏感数据,即使被盗也不会有重大损失。
控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。
缺点:
Cookie数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。
安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。
有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。
Session的优缺点:
优点
如果要在诸多Web页间传递一个变量,那么用Session变量要比通过QueryString传递变量可使问题简化。
要使WEb站点具有用户化,可以考虑使用Session变量。你的站点的每位访问者都有用户化的经验,基于此,随着LDAP和诸如MS Site
Server等的使用,已不必再将所有用户化过程置入Session变量了,而这个用户化是取决于用户喜好的。
你可以在任何想要使用的时候直接使用session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放。
缺点
Session变量和cookies是同一类型的。如果某用户将浏览器设置为不兼容任何cookie,那么该用户就无法使用这个Session变量!
当一个用户访问某页面时,每个Session变量的运行环境便自动生成,这些Session变量可在用户离开该页面后仍保留20分钟!(事实上,这些变量一直可保留至“timeout”。“timeout”的时间长短由Web服务器管理员设定。一些站点上的变量仅维持了3分钟,一些则为10分钟,还有一些则保留至默认值20分钟。)所以,如果在Session中置入了较大的对象(如ADO
recordsets,connections, 等等),那就有麻烦了!随着站点访问量的增大,服务器将会因此而无法正常运行!
因为创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理,所以,过度使用session变量将会导致代码不可读而且不好维护。
虽然“你可以在任何想要使用的时候直接使用session变量,而不必事先声明它,这种方式接近于在VB中变量的使用。使用完毕后,也不必考虑将其释放,因为它将自动释放”。但是,“谁”想到那儿呢?变量的含义是什么?这些都变得不很清晰。
首先你要明白,cookie 存储在用户电脑上, session存储在 servlet端,每次访问生成session 同时会返回给用户sessionid 存储在cookie里面 ,用户再次访问时携带了 sessionid 服务器才能识别你的session,如果没有sessionid 只能给你重新分配新的,如果你禁言cookie 这种方式就失效了,你只能手动获取sessionid 每次访问服务器都加上这个参数 才能保证找到session
Cookie和Session有很多相似的地方,都是用来临时存储来访者信息,有很多情况下,使用两者都可以实现某些特定功能,而两者的根本区别是Cookie对象将信息存放在客户端,Session对象存放在服务器端;从生存期上讲,Cookie可以长期保存,而Session的生存期仅仅到会话结束;
在ASPNET中,网站设计者可以选择Session的存储位置,可以存储在服务器端的内存中,也可以存放在SQL Server数据库中,若要保存到数据库中需要在Configweb文件中指明数据库的位置;还可以将Session保存在状态服务器中,状态服务器可以单独地存放Session对象的内容,即使ASPNET服务器进程失败,状态服务器也可以保存Session信息默认模式是存放在服务器端内存中但大量的数据会增加服务器的负荷
Cookie保存在客户端,用户可以看到Cookie文件,并能对Cookie文件进行类似修改、删除的 *** 作,Cookie数据的安全性很难得到保障;而Session数据保存在服务器端,有较好的安全性,若和数据库配合使用,可以使Session数据长期保持,并得到很好的安全性
以上就是关于cookie 和session 的区别详解全部的内容,包括:cookie 和session 的区别详解、如何获取SWT的browser组件的cookie或者session信息、session和cookie的区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)