Cookie与Session
Posted 哥哦狗子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cookie与Session相关的知识,希望对你有一定的参考价值。
一、Cookie定义
Cookie指某些网站为了辨别用户身份、进行 Session 跟踪而储存在用户本地终端上的数据。
二、Cookie实现原理
举个简单的例子,现在当我们浏览网站的时候,经常会自动保存账号与密码,这样下次访问的时候,就可以直接登录了。这种技术的实现就是利用了Cookie技术。 Cookie是由服务器将Cookie添加到response里一并返回给客户端,然后客户端会自动把response里的Cookie接收下来,并且保存到本地,下次发出请求的时候,就会把Cookie附加在request里,服务器在根据request里的Cookie遍历搜索是否有与之符合的信息。
三、Session定义
Session是另一种记录客户状态的机制,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。
Session可以记录用户的登录与行为数据,即记录下用户目前访问服务器上的那些内容,状态是什么,而考虑到这些数据用户修改的随意性很大,并没有必要直接存储在数据库中。在用户执行刷新操作时,即再次访问服务器时,可以直接根据Session,打开用户上次访问时网页的状态(如用户输入的表单内容等等),为用户带来更优的体验,提供个性化服务。用户的Session信息非常关键,它记录了用户在进入页面、查看结果、点击结果以及后继的操作(比如翻页、加购物车等)。
四、Session的实现原理
服务器会为每一个访问服务器的用户创建一个Session对象,并且把Session对象的id保存在本地Cookie上,只要用户再次访问服务器时,带着Session的id,服务器就会匹配用户在服务器上的Session,根据Session中的数据,还原用户上次的浏览状态或提供其他人性化服务。
五、Session和Cookie的联系
Session 的运行依赖 Session id,而 Session id 是存在 Cookie 中的,也就是说,如果浏览器禁用了 Cookie ,同时 Session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 Session_id)。
六、Session和Cookie的区别
1、Cookie是把用户的数据写在用户本地浏览器上,Session是把用户的数据写在用户的独占Session上,存储在服务器上,可以放在 文件、数据库、或内存中都可以。
2、Cookie不是很安全,别人可以分析存放在本地的Cookie并进行Cookie欺骗,考虑到安全应当使用Session。
3、Session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用Cookie。
4、单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie。
5、将登陆信息等重要信息存放为Session,其他信息如果需要保留,可以放在Cookie中
七、总结
Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息。
以上是关于Cookie与Session的主要内容,如果未能解决你的问题,请参考以下文章