• Session小解


    Session特点:

    1.Session保存在服务器端,为了获得更高的存取速度,一般把Session保存在内存当中;

    2.每个用户都有一个独立的Session,为了避免大量用户访问服务器导致内存溢出,Session内的消息应当尽量精简;

    3.Session在用户第一次访问服务器时创建,需要注意的是只有访问JSP,Servlet等程序时才会创建Session,单纯访问图片,HTML等静态资源时不会创建,

       如果尚未创建Session,可使用request.getSession(true)强制创建;

    4.Session上传后,只有用户继续访问,服务器就会更新Session的最后活跃时间,并维护该Session,对于用户,无论其访问时有没有读写Session,服务器都会认为Session活跃了一次;

    5.为防止内存溢出,服务器会将长期不活跃的的Session从内存中删除,即设置超时时间,超时时间内用户若没有继续访问,该Session将失效

    Session与Cookie

    如何标明用户访问了浏览器,以使之前创建的Session继续存活呢?HTTP协议是无状态的,即无法标明,于是,这就得依靠Cookie了,

    服务器想用户发送一个名为JSESSIONID的Cookie,其值为Session的id,用户访问浏览器时头信息内包含此Cookie,服务器依靠此Cookie判断是否为同一用户

    此Cookie由服务器端生成,其maxAge属性一般为-1,表示仅当前浏览器内有效,并且各浏览器窗口内不共享,关闭浏览器则失效,因此同一机器的两个浏览器窗口访问服务器时,会生成两个不同的Session。但由浏览器窗口内的链接、脚本等打开的新窗口会共享

    父窗口的Cookie,因此共享一个Session。

    如果客户端将Cookie禁用,或者不支持Cookie怎么办?

    使用URL重写,原理是将Session中的id重写入url中,服务器解析重写的url获取id,这样即使客户端不支持Cookie,也能够通过url获取id

  • 相关阅读:
    php 加入即时推送功能
    Yii GridView::widget
    linux 文件文件夹操作
    一套一般般的前端框架 layui
    supervisor 与 yii定时任务 crontab的使用
    yii 国际化
    如何在Webstorm/Phpstorm中设置连接FTP,并快速进行文件比较,上传下载,同步等操作
    docker搭建lnmp环境
    docker搭建lnmp环境(问题,资料,命令)
    yii2 刷新缓存(刷新模型缓存)
  • 原文地址:https://www.cnblogs.com/yanze/p/6114058.html
Copyright © 2020-2023  润新知