• springboot之session、cookie


    1-  获取session的方案

    session:  https://blog.csdn.net/yiifaa/article/details/77542208

    2-  session什么时候创建?

    一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用HttpServletRequest.getSession(true)这样的语句时才被创建。
    注意如果JSP没有显示的使用 <% @page session="false"%> 关闭session,
    则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的session对象的来历。
    由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。

    3-  session何时被删除?
    session在下列情况下被删除:
    A.程序调用HttpSession.invalidate()
    B.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间
    C.服务器进程被停止
    再次注意关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效,除非此时Server端刚好session失效时间到了。

    4- getSession()/getSession(true)、getSession(false)的区别,isNew()

    getSession()/getSession(true):当session存在时返回该session,否则新建一个session并返回该对象
    getSession(false):当session存在时返回该session,否则不会新建session,返回null。

    public boolean isNew()方法如果会话尚未和客户程序(浏览器)发生任何联系,即服务器端程序还没有返回客户端时,
    则这个方法返回true,这一般是因为会话是新建的,不是由输入的客户请求所引起的。但如果isNew返回false,
    只不过是说明他之前曾经访问Web应用,并不代表他们曾访问过我们的servlet或JSP页面。

    5 cookie: https://blog.csdn.net/u011145904/article/details/77745777

    6- 然后我再聊下session_id吧,它是保存在cookie中,首先session是一个只要活动就不会过期的东西,只要开启cookie,每一次会话,session_id都不会改变,我们可以根据session_id来判断用户是否是正常登陆,防止用户伪造session。然后我们也要防止session被劫持,我们可以对session_id进行再一次的加密,防止暴力破解,还有可以设置HttpOnly。通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。

  • 相关阅读:
    kubernetes中跨namespace的服务调用 & 外部服务调用 & host配置
    pm2 ——带有负载均衡功能的Node应用的进程管理器
    Linux——docker启用配置:dockerfile——ubuntu
    .net core 单元测试——sonar
    Linux——工具参考篇(3)——ps 进程查看器
    开发框架
    Django框架 + Djiango安装 + First Djiango + 常用命令
    计算机网络知识点随机整理
    Ubuntu tricks
    Python 图片Resize.py
  • 原文地址:https://www.cnblogs.com/domi22/p/9419126.html
Copyright © 2020-2023  润新知