Cookie和Session的区别和联系

Cookie与Session是Web程序中常用的技术,都可以用来跟踪用户的整个会话。但是他们之间有什么不同呢?接下来的小编就给大家简单介绍一下。

主要用途

Cookie的诞生是为了解决HTTP无状态的特性无法满足交互式Web,主要用于会话状态管理(如用户登录状态、游戏分数或其它需要记录的信息);个性化设置(如用户自定义设置、主题等);浏览器行为跟踪(如跟踪分析用户行为等)。

Session是服务器端使用的一种记录客户端状态的机制,使用上比Cookie简单一些,相应的也增加了服务器的存储压力。

如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

使用场景

Cookie技术可以将信息存储在不同的浏览器中,并且可以实现多次请求下的数据共享,分为临时Cookie和长久Cookie。如果一个Cookie没有设置有效期,那么浏览器在关闭时就会删除这个Cookie,这种Cookie叫做临时Cookie;如果Cookie设置了有效期,那么浏览器会一直保存这个Cookie,直到有效期为止,这种Cookie叫做长久Cookie。

Session是一种建立在Cookie之上的通信状态保留机制,可以实现在服务端存储某个用户的一些信息。服务器创建Session后,将Session的id以Cookie的形式返回给浏览器,只要浏览器不关,再去访问服务器时,就会携带着Session的id,服务器发现浏览器带Session的id过来,就会使用内存中与之对应的Session为之服务。

Cookie和Session什么关系?

Web前端程序员在面试过程中如果遇到“Cookie和Session什么关系”的问题,可以这样回答:二者都是为了实现客户端与服务端交互而产出。其中Cookie是把用户的数据写给用户的浏览器,而Session技术把用户的数据写到用户自己的Session中。Session是一个对象,其属性也可以是任何类型(Cookie只能设置字符串)。Cookie是保存在客户端,缺点易伪造、不安全,Session是保存在服务端,会消耗服务器资源,Session实现有两种方式:Cookie和URL重写。

以上就是千锋小编介绍的Cookie与Session之间的不同。

打开APP阅读更多精彩内容