浅析Cookie和Session技术.doc

浅析Cookie和Session技术.doc

ID:49867814

大小:69.50 KB

页数:3页

时间:2020-03-05

浅析Cookie和Session技术.doc_第1页
浅析Cookie和Session技术.doc_第2页
浅析Cookie和Session技术.doc_第3页
资源描述:

《浅析Cookie和Session技术.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、浅析Cookie和Session技术软件专业:刘智慧木人在自学Web编程技术的入门过稈屮,常常被Cookie与Session技术概念所困扰,花费很长时间才基木搞明白这二者是怎么一冋事,因此木文对Cookie与Session技术抛砖引玉,达到大家共同学习的目的。1.Cookie与Session基本概念Cookie最早是网景公司的前雇员LouMontulli在1993年3月的发明。Cookie是由服务器端生成,发送给User-Agent(—般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文木文件内,下次请求同一网站时就发送

2、该Cookie给服务器(前提是浏览器设置为启用cookie)oCookie名称和值可以由服务器端开发白己定义,对于JSP而言也可以育接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies屮包含信息,借此维护用户跟服务器会话屮的状态。Session是什么呢?简单来说就是Web服务器给客户端的一个编号。当一台WWW服务器运行时,可能有若干个用户浏览正在运正在这台服务器上的网站。当每个用户首次与这台WWW服务器建立连接时,他就与这个服务器建立了一个Session,同时服务器会自动为其

3、分配一个SessionlD,用以标识这个用户的唯一身份。这个SessionlD是由WWW服务器随机产生的一个由24个字符组成的字符串,我们会在下面的实验屮见到它的实际样子。简明扼要来说,Cookie机制采用的是在客户端保持状态的方案,而Session机制采用的是在服务器端保持状态的方案。2.Cookie与Session比较Cookie与Session都可以进行会话跟踪,但是实现的原理不太一样。一般情况下二者均可以满足需求,但有时候不可以使用Cookie,有时候不可以使用Session。下血通过比较说明二者的特点以及适用的场合。2.1从存取方式上

4、比较Cookie屮只能保存ASCII字符串,如果需要存取Unicode字符或者二讲制数据,需要进行UTF-8,GBK或者BASE64等方式的编码。Cookie屮也不能直接存取Java对象。若要存储稍微复杂的信息,使用Cookie是比较困难的。而Session中可以存取任何类型的数据,包括而不限于String、Integer>List^Map等。Session中也可以直接保存JavaBean乃至任何Java类,对象等,使用起来非常方便。可以把Session看做是一个Java容器类。2.2隐私安全上比较Cookie存储在客户端浏览器屮,对客户端是可

5、见的,客户端的一些程序可能会窥探、复制萇至修改Cookie屮的内容。而Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的危险。如果选用Cookie,比较好的办法是,敏感的信息如账号密码等尽最不要写到Cookie屮。最好是像Google.Baidu那样将Cookie信息加密,提交到服务器后再进行解密,保证Cookie屮的信息只冇白己能读得懂。而如果选择Session就省事多了,反正是放在服务器上,Session里任何隐私都可以。2.3从有效期上比较使用过Google的人都知道,如果登录过Google,则Google的登录消息长期

6、有效。用户不必每次访问都重新登录,Google会长久地记录该用户的登录信息。要达到这种效果,使用Cookie会是比较好的选择。只需要设置Cookie的maxAge属性为-一个很大很大的数字或者Integer.MAX_VALUE就可以了。Cookie的maxAge属性支持这样的效果。使用Session理论上也能实现这种效果。只要调用方法setMaxInactiveInterval(Integer.MAXVALUE)不就可以了么。但是由于Session依赖于名为JSESSIONID的Cookie,而CookieJSESS1ON1D的maxAge默认

7、为-1,只要关闭了浏览器该Session就会失效,因此Session不能实现信息永久有效的效果。使用URI,地址重写也不能实现。而且如果设置Session的超时时间过长,服务器累计的Session就会越多,越容易导致内存溢出。2.4从对服务器的负担上比较Session是保存在服务器端的,每个用户都会产生一个Session。如果并发访问的用户非常多,会产生非常多的Session,消耗大量的内存。因此像Google、Baidu、Sina这样并发访问量极高的网站,是不太可能使用Session來追踪客户会话的。而Cookie保存在客户端,不占用服务器资

8、源。如果并发浏览的用户非常多,Cookie是很好的选择。对于Google、BaiduxSina•来说,Cookie也许是唯一的选择。2.5从浏览器支持

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。