zoukankan      html  css  js  c++  java
  • 理解Cookie和Session

    理解Cookie

    Cookie的作用

    用户通过Http协议服务器,服务器会将一些Key/Value对返回给客户端浏览器,用户下次访问时数据又被完整的带回服务器。具体可以利用Cookie来做如:

    • 在客户端上保存用户数据,如用户名称、角色等等,起到简单的缓存作用;
    • 保存用户的登陆状态,用户成功登陆后,服务器生成特定的cookie返回给客户端,客户端下次访问该域名下的任何页面,将cookie的信息发送给服务器来认证用户;
    Cookie的属性

    常见属性如:

    • Expires 过期时间
    • Domain 对应的域名
    • Path 生成Cookie的路径
      可以通过name=value的方式来添加cookie属性,如添加用户名 username="zhansan"
    弊端
    • 浏览器对Cookie的大小和数量有一定限制
    • 如果Cookie很多,客户端和服务端每次交互都得携带,增加了数据传输量
    • Cookie的信息可以在浏览器F12直接查看、修改、添加,有一定的安全风险,所有在使用时敏感数据一定要加密。

    理解Session

    服务器通过指定的属性名称来获取Session,默认属性名称为SESSIONID, 浏览器不支持Cookie时,通过路径参数传递,支持的话会将其放到Cookie属性中。服务端获取到SessionId(客户端第一次访问服务器时生成,每个客户端是唯一的)后生成HttpSession对象,这个对象会被服务端缓存直到过期回收。

    Session的作用
    • 用Session将信息保存在服务端,避免了直接使用Cookie的信息暴露
    • 客户端只需要一个SessionId, 减少了传输数据量
    限制
    • 分布一致性,使用Session会带来分布式问题,当有多台服务端时,需要保障Session一致,可以通过分布式Session框架来解决,确保session同步
    • CSRF攻击,可以在session中添加token来防范
  • 相关阅读:
    jvm性能监控(4)–JVM的监控工具Jconsole
    jvm性能监控(3)-jdk自带工具 jps jstack jmap
    jvm性能监控(2)–JVM的监控工具jstat
    jvm(1)性能监控-linux相关命令
    jvm学习(5) 对象的创建与结构
    jvm(4) 对象创建
    jvm学习(3)方法区、堆、对象存储位置
    jvm学习(2)JVM内存说明
    java泛型
    windows下部署spring boot 的jar
  • 原文地址:https://www.cnblogs.com/ljgeng/p/9538416.html
Copyright © 2011-2022 走看看