为什么我要在这里提Session和Cookie,这也大型站点必须要处理问题。

15.10.1. Session

在集群环境中与单服务器是不一样的,集群组成可分为调度服务器和节点,节点数量不定,单个节点安装有web服务器,用户每次访问网站调度服务器随机分配一个节点给该用户, 举一个例子:用户在网站上看新闻,点击第一个连接被分配到node 1上去,当他看完这条新闻并单击下一条时,可能被分配到其它节点上,这里刚才建立的session在node 1上, 它就会因失去session而必须重新登录。

所以我们要同步所有节点上的Session, 另外如果能用Cookie代替Session的地方尽量使用Cookie。

15.10.2. Session 共享

解决方案:

  1. 不用Session,使用Cookie取而代之

  2. 共享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相关推荐

  1. python Django session/cookie

    一, Cookie #cookie # def cook1(request): # print(request.COOKIES) # 查看cooke # # print(request.get_sig ...

  2. Mock session,cookie,querystring in ASB.NET MVC

    写测试用例的时候经常发现,所写的功能需要Http上下文的支持(session,cookie)这类的. 以下介绍2种应用场景. 用于控制器内Requet获取参数 控制器内的Requet其实是控制器内的属 ...

  3. 四、Web服务器——Session Cookie JSP入门 学习笔记

    今日内容 1. 会话技术1. Cookie2. Session 2. JSP:入门学习 会话技术 1. 会话:一次会话中包含多次请求和响应.* 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直 ...

  4. ASP.NET Application,Session,Cookie和ViewState等对象用法和区别

    ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,C ...

  5. Session/Cookie/Token还傻傻分不清?

    Cookie.Session.Token 傻傻分不清 Session/Cookie/Token 还傻傻分不清? 相信项目中用JWT Token的应该不在少数,但是发现网上很多文章对 token 的介绍 ...

  6. session cookie的区别最全总结

    作为一名WEB开发程序员,对session的理解是最基础的,但是现状是WEB程序员遍地都是,随便一划拉一大把,不过估计能把session能透彻理解的人应该不是很多,起码我之前对此是知之甚少,偶然看到的 ...

  7. 10任务栏全屏时老是弹出_Deepin 15.10 发布,深度操作系统

    深度操作系统是一个致力于为全球用户提供美观易用.安全可靠的Linux发行版. 深度操作系统基于Linux内核,以桌面应用为主的开源GNU/Linux操作系统,支持笔记本.台式机和一体机.深度操作系统( ...

  8. session,cookie,sessionStorage,localStorage的区别及应用场景

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...

  9. 【转】接口测试Session/Cookie笔记(二)

    Windows系统运行计算器命令:calc python显示上一步操作命令:Alt+p python显示上一步操作结果:_(英文下划线) Session是存放在服务器的键值对 ,用于保存客户端的某个特 ...

最新文章

  1. Facebook 开源了一整套重要的 Linux 内核组件与工具!
  2. 小红书公司注册老红书商标上热搜 网友:过两年变老了改名吗?
  3. VCC、VDD、VSS、GND分别代表什么呢?
  4. IstioCon 2022 报名中|使用 eBPF 代替 iptable 加速 Istio 数据平面
  5. 2021美团Java面试真题解析(含参考答案)
  6. python3分解质因数_python3 分解质因数
  7. 局域网电脑互访的设置大全
  8. 本科挣 30 万,秋招大厂提前批offer,大学四年,帅地做对了什么?(附所有知识清单)
  9. SOLIDWORKS 2022官方正版新功能介绍
  10. java为Word插入图片水印
  11. MeterSphere案例分享丨88完美邮箱全面提升产品质量的落地指南
  12. 人体红外传感模块原理分析
  13. 派森python_派森(Python)
  14. vb wps 链接单元格_vb读取WPS的EXCEL文档并另存为其他
  15. WEB在打印fr3报表上显示二维码和图片
  16. 程序员必备网站Collection~
  17. Science: 重新“野化“ 植物微生物组
  18. 不同格式图片相互转换的开源库分享
  19. 解决 enclosing instance of type XXX(你的类)(e.g. x.new A() wher x is an instance of XXX(你的类)).
  20. 基于javaweb+mysql的网上水果超市商城设计和实现(java+ssm+springboot+redis)

热门文章

  1. L1-050 倒数第N个字符串-PAT团体程序设计天梯赛GPLT
  2. python 网络编程_python网络编程示例(客户端与服务端)
  3. perl如何遍历指定文件夹下的指定扩展名文件,并按时间顺序要求删除
  4. java project 项目在 linux 下面部署步骤
  5. IE8 Beta2 已经放出来了
  6. Java进阶知识点:协变与逆变
  7. 分解模式 - 按业务领域分解模式划分微服务
  8. devsecops automation
  9. List特有迭代器--ListIterator的特殊功能
  10. Decorator 装饰模式