15.10. Session/Cookie
为什么我要在这里提Session和Cookie,这也大型站点必须要处理问题。
15.10.1. Session
在集群环境中与单服务器是不一样的,集群组成可分为调度服务器和节点,节点数量不定,单个节点安装有web服务器,用户每次访问网站调度服务器随机分配一个节点给该用户, 举一个例子:用户在网站上看新闻,点击第一个连接被分配到node 1上去,当他看完这条新闻并单击下一条时,可能被分配到其它节点上,这里刚才建立的session在node 1上, 它就会因失去session而必须重新登录。
所以我们要同步所有节点上的Session, 另外如果能用Cookie代替Session的地方尽量使用Cookie。
15.10.2. Session 共享
解决方案:
不用Session,使用Cookie取而代之
共享Session,放到数据库中,放到Memcache中
PHP Session很有解决方案:
查看PHP手册 Session Extensions 章节,重写Session逻辑。
共享Session用Memcache,在php.ini中配置即可
session.save_handler = memcache session.save_path = tcp://127.0.0.1:10001
15.10.3. Cookie
Cookie 我这里提到cookie是可以实现“单点登录”功能。
一个网站可能不指一组集群系统,如news.example.org, bbs.example.org, blog.example.org 要实现在一处登录即可在其它站点上同时也处于登录状态,就要用到Cookie来实现。
15.10.3.1. Cookie 安全
Cookie存储在用户端,Cookie数据极易伪造。下面提供几个方案。
在Cookie数据上加干扰词
在反向代理上做手脚
负载均衡设备都提供Cookie保护功能
15.10.3.2. cookie-free domains
15.10.3.3. P3P
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
<?php header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"'); setcookie("test", $_GET['id'], time()+3600, "/", ".a.com"); ?>
原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。
15.10. Session/Cookie相关推荐
- python Django session/cookie
一, Cookie #cookie # def cook1(request): # print(request.COOKIES) # 查看cooke # # print(request.get_sig ...
- Mock session,cookie,querystring in ASB.NET MVC
写测试用例的时候经常发现,所写的功能需要Http上下文的支持(session,cookie)这类的. 以下介绍2种应用场景. 用于控制器内Requet获取参数 控制器内的Requet其实是控制器内的属 ...
- 四、Web服务器——Session Cookie JSP入门 学习笔记
今日内容 1. 会话技术1. Cookie2. Session 2. JSP:入门学习 会话技术 1. 会话:一次会话中包含多次请求和响应.* 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直 ...
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别
ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,C ...
- Session/Cookie/Token还傻傻分不清?
Cookie.Session.Token 傻傻分不清 Session/Cookie/Token 还傻傻分不清? 相信项目中用JWT Token的应该不在少数,但是发现网上很多文章对 token 的介绍 ...
- session cookie的区别最全总结
作为一名WEB开发程序员,对session的理解是最基础的,但是现状是WEB程序员遍地都是,随便一划拉一大把,不过估计能把session能透彻理解的人应该不是很多,起码我之前对此是知之甚少,偶然看到的 ...
- 10任务栏全屏时老是弹出_Deepin 15.10 发布,深度操作系统
深度操作系统是一个致力于为全球用户提供美观易用.安全可靠的Linux发行版. 深度操作系统基于Linux内核,以桌面应用为主的开源GNU/Linux操作系统,支持笔记本.台式机和一体机.深度操作系统( ...
- session,cookie,sessionStorage,localStorage的区别及应用场景
浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...
- 【转】接口测试Session/Cookie笔记(二)
Windows系统运行计算器命令:calc python显示上一步操作命令:Alt+p python显示上一步操作结果:_(英文下划线) Session是存放在服务器的键值对 ,用于保存客户端的某个特 ...
最新文章
- Facebook 开源了一整套重要的 Linux 内核组件与工具!
- 小红书公司注册老红书商标上热搜 网友:过两年变老了改名吗?
- VCC、VDD、VSS、GND分别代表什么呢?
- IstioCon 2022 报名中|使用 eBPF 代替 iptable 加速 Istio 数据平面
- 2021美团Java面试真题解析(含参考答案)
- python3分解质因数_python3 分解质因数
- 局域网电脑互访的设置大全
- 本科挣 30 万,秋招大厂提前批offer,大学四年,帅地做对了什么?(附所有知识清单)
- SOLIDWORKS 2022官方正版新功能介绍
- java为Word插入图片水印
- MeterSphere案例分享丨88完美邮箱全面提升产品质量的落地指南
- 人体红外传感模块原理分析
- 派森python_派森(Python)
- vb wps 链接单元格_vb读取WPS的EXCEL文档并另存为其他
- WEB在打印fr3报表上显示二维码和图片
- 程序员必备网站Collection~
- Science: 重新“野化“ 植物微生物组
- 不同格式图片相互转换的开源库分享
- 解决 enclosing instance of type XXX(你的类)(e.g. x.new A() wher x is an instance of XXX(你的类)).
- 基于javaweb+mysql的网上水果超市商城设计和实现(java+ssm+springboot+redis)