• 2、什么是session?


    session

    什么是Session?Session什么时候产生?

      Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。
       简单来说,客户端浏览服务端的时候,服务端把客户端信息以某种形式记录在服务器上,这种记录就是Session。所以Session是保存在服务器上的。

     

    为什么要使用Session?什么是SessionID?

       因为很多第三方可以获取到这个Cookie,服务器无法判断Cookie是不是真实用户发送的,所以Cookie可以伪造,伪造Cookie实现登录进行一些HTTP请求。如果从安全性上来讲,Session比Cookie安全性稍微高一些,我们先弄清一点,SessionID是从哪里来的,sessionID是如何使用的:客户端第一次请求Session对象时候,服务器会为客户端创建一个session,并将通过特殊算法算出一个session的ID,下次请求资源时(Session未过期),浏览器会将sessionID(实质是cookie)放置到请求头中,服务器接收到请求后就得到该请求的SessionID,服务器找到该id的session返还给请求者使用。一个会话只能有一个session对象,对session来说是只看sessionID。按理来说,只要知道SessionID就可以进行伪登录。但是你想得到这个sessionID,得知道别人什么时候进行登录。同时sessionID是加密的,session过期时sessionID也会失效,想在短时间内功破加了密的sessionID有点难度。

     

    Session的生命周期?

      根据需求设定,一般来说,半小时。举个例子,你登录一个服务器,服务器返回给你一个sessionID,登录成功之后的半小时之内没有对该服务器进行任何HTTP请求,半小时后你进行一次HTTP请求,会提示你重新登录。这就是我们常说的Session已失效,也就是说就算的session_id还存在,但是session照样会结束自己的生命周期。

     

     

  • 相关阅读:
    TCP/IP协议栈概述及各层包头分析
    Maven:Non-resolvable parent POM: Failure to find错误
    mysql alter 用法,修改表,字段等信息
    PowerDesigner16 设置导出sql文件的编码
    linux iptables开放/关闭端口命令
    Enterprise Architect 13 : 需求建模 自动命名并计数
    Enterprise Architect 13 : 将绘制的图形导出成图片 或者 拷贝到剪贴板中
    Enterprise Architect 13 : 设置默认代码环境
    使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,报异常的解决方法
    PowerDesigner16 修改表或表的字段Name的时候不让Code不自动跟着变
  • 原文地址:https://www.cnblogs.com/suim1218/p/7698750.html
Copyright © 2020-2023  润新知