zoukankan      html  css  js  c++  java
  • Cookie与Session

    一、Cookie定义

    Cookie指某些网站为了辨别用户身份、进行 Session 跟踪而储存在用户本地终端上的数据。

    二、Cookie实现原理

    举个简单的例子,现在当我们浏览网站的时候,经常会自动保存账号与密码,这样下次访问的时候,就可以直接登录了。这种技术的实现就是利用了Cookie技术。 Cookie是由服务器将Cookie添加到response里一并返回给客户端,然后客户端会自动把response里的Cookie接收下来,并且保存到本地,下次发出请求的时候,就会把Cookie附加在request里,服务器在根据request里的Cookie遍历搜索是否有与之符合的信息。

    三、Session定义

    Session是另一种记录客户状态的机制,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。

    Session可以记录用户的登录与行为数据,即记录下用户目前访问服务器上的那些内容,状态是什么,而考虑到这些数据用户修改的随意性很大,并没有必要直接存储在数据库中。在用户执行刷新操作时,即再次访问服务器时,可以直接根据Session,打开用户上次访问时网页的状态(如用户输入的表单内容等等),为用户带来更优的体验,提供个性化服务。用户的Session信息非常关键,它记录了用户在进入页面、查看结果、点击结果以及后继的操作(比如翻页、加购物车等)。

    四、Session的实现原理

    服务器会为每一个访问服务器的用户创建一个Session对象,并且把Session对象的id保存在本地Cookie上,只要用户再次访问服务器时,带着Session的id,服务器就会匹配用户在服务器上的Session,根据Session中的数据,还原用户上次的浏览状态或提供其他人性化服务。

    五、Session和Cookie的联系

    Session 的运行依赖 Session id,而 Session id 是存在 Cookie 中的,也就是说,如果浏览器禁用了 Cookie ,同时 Session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 Session_id)。

    六、Session和Cookie的区别

    1、Cookie是把用户的数据写在用户本地浏览器上,Session是把用户的数据写在用户的独占Session上,存储在服务器上,可以放在 文件、数据库、或内存中都可以。

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

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

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

    5、将登陆信息等重要信息存放为Session,其他信息如果需要保留,可以放在Cookie中

    七、总结

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

  • 相关阅读:
    关于SpringBoot的外部化配置使用记录
    深入理解Mybatis插件
    MySQL JDBC Driver 8.0+设置服务器时区
    重新认识Java注解
    深入理解Java枚举
    Spring cloud系列教程第十篇- Spring cloud整合Eureka总结篇
    Spring Cloud系列教程第九篇-Eureka自我保护机制
    安装vsftp服务器的时候遇到的问题
    spring cloud系列教程第八篇-修改服务名称及获取注册中心注册者的信息
    idea 启动命令行的时候提示不能创建PTY
  • 原文地址:https://www.cnblogs.com/superlizhao/p/8006366.html
Copyright © 2011-2022 走看看