网站Session(会话)保持的常用手段
来源:互联网 发布:漂亮的登录界面源码 编辑:程序博客网 时间:2024/05/18 07:16
Session
这个可以说是最常用的, 基本的Web框架都提供。使用很简单,在Java中request.getSession即可获取。基本原理是:在用户访问网页的时候,下发一个Cookie,里面保存了一个SessionID的字符串,用户再次访问的时候,用SessionID到内存中对应的一个Map获取Session数据。
这个很明显的缺点就是只能单机使用,因为不同的服务之间Session数据是不共享的,这样在集群的时候就没办法用Session。其实也有变通的方法,比如在Tomcat中,可以使用不同的Session管理器,比如有一个用Memcached来存储Session的管理器,这样多台Tomcat都指向同一个Memcached,就实现了Session数据共享。单这样做部署就稍微麻烦了点,多依赖一个Memcached,而且如果不同语言写的Web服务的话,就会更麻烦。
Cookie+passport+缓存
根据用户登录信息,一般如ID、登录名、姓名等简单鉴别身份需要的信息,生成一个字符串,然后把这个字符串用一个私有的Key加密,将加密的结果Base64后写入Cookie下发,称为Passport。这样用户的Cookie,任何一台服务器就可以直接解密获得用户基本登录信息。如果有额外的信息需要读取,可以根据用户信息从持久层读取,如数据库或者缓存。
这个优点是比较灵活,不依赖任何第三方存储实现了用户身份在不同机器之间的共享,缺点是如果加密方法被窃取有一定的风险。
这是我常用的两种手段,有其他解决方案,欢迎留言。
0 0
- 网站Session(会话)保持的常用手段
- HttpURLConnection类的保持session会话
- volley session 保持会话
- session会话保持
- 会话管理的手段
- web之保持会话(Session)
- httpClient 4.2 保持会话session
- apache session 会话保持 mod_proxy_balancer
- HttpURLConnection类保持session会话
- 负载均衡session会话保持
- 网站架构常用的优化手段
- 网站受攻击的常用手段
- Nginx反向代理实现会话(session)保持的两种方式
- Nginx反向代理实现会话(session)保持的两种方式
- Nginx反向代理实现会话(session)保持的两种方式
- Nginx反向代理实现会话(session)保持的两种方式
- Nginx反向代理实现会话(session)保持的两种方式
- 使用web园 多线程web应用程序的session会话保持
- Android Studio使用新的Gradle构建工具配置NDK环境(三)
- PHP 文件上传
- iOS-YHChat仿微信聊天(老司机带你入门即时通讯)
- NW中Geometry的使用技巧
- 树型DP学习
- 网站Session(会话)保持的常用手段
- Android屏幕适配全攻略
- 读书笔记 effective c++ Item 9 绝不要在构造函数或者析构函数中调用虚函数
- 【Dongle】【MVC】MVC框架学习
- C#string 的引用类型问题
- 01背包问题
- BZOJ 1001 [BeiJing2006]狼抓兔子 最短路
- 使用ajax编写异步查询
- Android快速发布项目到jcenter