cookie 与 session 的区别与联系

Posted 穿越亚平宁的盛夏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cookie 与 session 的区别与联系相关的知识,希望对你有一定的参考价值。

1,禁用cookie 后 seesion 还能用吗?

cookie是保存在本地的,而seesion是保存在服务器上的。所以两者没有直接的关系,禁用cookie后seesion依然可以用。

session的运行依赖于session id,而session id是存在cookie中的。也即,如果客户端禁用了cookie(每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端。实际上大多数的应用都是用 Cookie 来实现Session跟踪的,第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器),同时session也会失效的。可以通过URL重写技术来进行会话跟踪,实现每一次HTTP交互时,URL后面都会被附加类似sid=xxx的参数,服务器由此来识别用户。


2 coocke

Cookie 的使用很普遍,许多有提供个人化服务的网站,都是利用 Cookie来辨认使用者,以方便送出使用者量身定做的内容,像是 Web 接口的免费 email 网站,都要用到 Cookie。

3 session

1)在服务器端

2)默认存在方服务器的一个文件里面。也可以存放在数据库或内存中。

3)当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否已包含了一个session标识(称为session id),如果已包含则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(检索不到,会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。保存这个session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。一般这个cookie的名字都是类似于SEEESIONID。但cookie可以被人为的禁止,则必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。

会话维持的核心是session id ;它是客户端唯一标识。

4)

总之

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

5)

cookie 和session 的区别:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
   考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
   考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、所以个人建议:
   将登陆信息等重要信息存放为SESSION
   其他信息如果需要保留,可以放在COOKIE中

 

参考:https://www.zhihu.com/question/19786827

http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html

以上是关于cookie 与 session 的区别与联系的主要内容,如果未能解决你的问题,请参考以下文章

cookie与session的区别与联系

cookie 与 session 的区别与联系

cookie 与 session 的区别与联系

Session与Cookie的区别与联系

cookie和session的区别与联系

浅谈Session与Cookie的区别与联系