• 在线客服

  • 扫描二维码
    下载博学谷APP

  • 扫描二维码
    关注博学谷微信公众号

  • 意见反馈

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

发布时间:2019-06-27 11:12:42 浏览 7118 来源:博学谷资讯 作者:三省

      什么是 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对象。

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

上一篇: Python特点 Python是强语言类型还是弱语言类型? 下一篇: Python开发中字典和 json的区别

相关推荐 更多

热门文章

  • 前端是什么
  • 前端开发的工作职责
  • 前端开发需要会什么?先掌握这三大核心关键技术
  • 前端开发的工作方向有哪些?
  • 简历加分-4步写出HR想要的简历
  • 程序员如何突击面试?两大招带你拿下面试官
  • 程序员面试技巧
  • 架构师的厉害之处竟然是这……
  • 架构师书籍推荐
  • 懂了这些,才能成为架构师
  • 查看更多

扫描二维码,了解更多信息

博学谷二维码