cookie和session的区别

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会a话

常用的会话跟踪技术是Cookie与Session。

Cookie通过在客户端记录信息确定用户身份

Session通过在服务器端记录信息确定用户身份

 

cookie和session的区别

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

        简单的说,当你登录一个网站的时候,如果web服务器端使用的是session,那么所有的数据都保存在服务器上面,

 客户端每次请求服务器的时候会发送 当前会话的session_id,服务器根据当前session_id判断相应的用户数据标志,以确定用户是否登录,或具有某种权限。

 由于数据是存储在服务器 上面,所以你不能伪造,但是如果你能够获取某个登录用户的session_id,用特殊的浏览器伪造该用户的请求也是能够成功的。

 session_id是服务器和客户端链接时候随机分配的,一般来说是不会有重复,但如果有大量的并发请求,也不是没有重复的可能性。

 Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。

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

 3、设置cookie时间可以使cookie过期。但是使用session-destory(),我们将会销毁会话。

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

 5、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。(Session对象没有对存储的数据量的限制,其中可以保存更为复杂的数据类型)

   注意:

      session很容易失效,用户体验很差;

      虽然cookie不安全,但是可以加密 ;

      cookie也分为永久和暂时存在的;

      浏览器 有禁止cookie功能 ,但一般用户都不会设置;

     一定要设置失效时间,要不然浏览器关闭就消失了;

       例如:

            记住密码功能就是使用永久cookie写在客户端电脑,下次登录时,自动将cookie信息附加发送给服务端。

            application是全局性信息,是所有用户共享的信息,如可以记录有多少用户现在登录过本网站,并把该信息展示个所有用户。

  两者最大的区别在于生存周期,一个是IE启动到IE关闭.(浏览器页面一关 ,session就消失了),一个是预先设置的生存周期,或永久的保存于本地的文件。(cookie)

 Session信息是存放在server端,但session id是存放在client cookie的,当然php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪

 Cookie是完全保持在客户端的如:IE firefox 当客户端禁止cookie时将不能再使用

 

posted @ 2020-07-02 09:02  akrgjkls  阅读(139)  评论(0编辑  收藏  举报