南通SEO,南通网络营销顾问任伟SEO博客

首页> 好文分享 > 什么是 cookie?cookie和session 有什么区别?
163Views

什么是 cookie?cookie和session 有什么区别?

作者: 发布于 0 条评论 字体大小[]

 

      什么是 cookie?cookie和session 有什么区别?Cookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据。cookie 数据存放在客户的浏览器上,session 数据放在服务器上。

     

    什么是 cookie

          cookie和session 有什么区别?


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


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


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


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


      5、可以考虑将登陆信息等重要信息存放为 session,其他信息如果需要保留,可以放在 cookie 中。

     

      什么是 cookie,session 有什么区别?


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


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


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


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


      5、可以考虑将登陆信息等重要信息存放为 session,其他信息如果需要保留,可以放在 cookie 中。


      关于Cookie


      一、什么是Cookie


      Cookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据。


      首先由服务器通过响应头把Cookie传输给客户端,客户端会将Cookie保存起来。


      当客户端再次请求同一服务器时,客户端会在请求头中添加该服务器保存的Cookie,发送给服务器。


      Cookie就是服务器保存在客户端的数据!


      Cookie就是一个键值对!!!


      二、 Cookie规范


      Cookie通过请求头和响应头在服务器与客户端之间传输;


      Cookie大小限制在4KB之内;


      一台服务器在一个客户端最多保存20个Cookie;


      一个浏览器最多可以保存300个Cookie;


      虽然Cookie规范是如此,但在今天,浏览器厂商的竞争异常激烈,所以多少会超出Cookie规则的限制。但也不会超出过多!


      关于Session


      一、什么是session


      在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。


      二、 session的原理


      session是依赖Cookie实现的。session是服务器端对象


      当用户第一次使用session时(表示第一次请求服务器),服务器会创建session,并创建一个Cookie,在Cookie中保存了session的id,发送给客户端。这样客户端就有了自己session的id了。但这个Cookie只在浏览器内存中存在,也就是说,在关闭浏览器窗口后,Cookie就会丢失,也就丢失了sessionId。


      当用户第二次访问服务器时,会在请求中把保存了sessionId的Cookie发送给服务器,服务器通过sessionId查找session对象,然后给使用。也就是说,只要浏览器容器不关闭,无论访问服务器多少次,使用的都是同一个session对象。这样也就可以让多个请求共享同一个session了。


      当用户关闭了浏览器窗口后,再打开浏览器访问服务器,这时请求中没有了sessionId,那么服务器会创建一个session,再把sessionId通过Cookie保存到浏览器中,也是一个新的会话开始了。原来的session会因为长时间无法访问而失效。


      当用户打开某个服务器页面长时间没动作时,这样session会超时失效,当用户再有活动时,服务器通过用户提供的sessionId已经找不到session对象了,那么服务器还是会创建一个新的session对象,再把新的sessionId保存到客户端。这也是一个新的会话开始了。


      三、session与浏览器


      session对象是保存在服务器端的,而sessionId是通过Cookie保存在客户端的。


      因为Cookie不能在多个浏览器中共享,所以session也不能在多个浏览器中共享。也就是说,使用IE登录后,再使用FireFox访问服务器还是没有登录的状态。


      而且同时打开多个相同浏览器的窗口,是在使用同一session。如果你使用的是老浏览器,例如IE6,那么就会每个窗口一个session。


      四、Session和Cookie的主要区别


      Cookie是把用户的数据写给用户的浏览器。


      Session技术把用户的数据写到用户独占的session中。


      Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。

分享来源: 任伟SEO博客 转载请注明出处!(QQ交流:547701130/微信:renweiseo/微信公众号:renwei_seo)
原文地址:http://www.renweiseo.com/goodarticles/view/4428.html
发布于 2019-07-27 09:32:47 已有0人评论 任伟 作者保留权利

发表评论

必填

选填

选填

必填

已有0人参与,欢迎参与讨论,请在这里发表您的看法、交流您的观点。

亲!看完有什么想法呢?
  • 流泪

    0

  • 打酱油

    0

  • 开心

    0

  • 鼓掌

    0

  • 恐怖

    0

作者介绍

  • 任伟
  • • 主页:
    • 文章:
    • 邮箱:

    命是弱者的借口,运是强者的谦辞。

    控制面板

    您好,欢迎到访网站!
      查看权限
    «   2019年9月   »
    1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30

    猜你喜欢