session和cookie简单概念
2016-07-20 17:46
169 查看
众所周知,目前流行的B/S结构是通过http来进行交互的,但是http是无状态的协议,服务器无法知道这个请求是谁发来的,做个最通俗的例子吧,A将一件商品加入了购物车,之后又加了一件,但是这是两次http请求,服务器不知道应该将两件商品加入同一个,也就是说A的购物车。所以我们需要进行会话跟踪。 目前我们使用会话跟踪有两种方式,一种是Cookie,一种是Session,简单点来说: Cookie是存储在客户端的(通常也就是说浏览器),Cookie是由服务器端通过http响应头中加入一行特殊的指令让浏览器生成Cookie,之后浏览器每次访问服务器都会带上Cookie,服务器就可以通过Cookie来跟踪会话。(这只是简单的原理,实际还是比较复杂的) Session是存储在服务端的,Session一般由服务器自动生成,然后每个请求用户都会有一个唯一的Id,这个Id一般会设置成一个Cookie(名为JSESSIONID),发送给浏览器,但是Cookie并不是所有浏览器都支持,或者浏览器关闭了Cookie功能,这时seesionId就会通过url重写的方式传送给服务器。 至于使用场景,由于Cookie在每次请求的时候都会带上,所以如果信息过多的话,会造成大量的带宽,而且因为Cookie是存储在浏览器本地的,所以从安全性角度来说,也不是很安全的。 Session是存储在服务器端的,所以当用户量非常大的时候,是非常占内存的,(当然了,现在这也不是事了,毕竟内存也便宜),当用户量大的时候,服务端必然是一个集群,那么session总不能存在每个节点中的内存中吧,这样就会导致session不共享,可能我登录时session保存在A节点,我另一个操作被分配到B节点了,那就找不到相应的session了。所以,一般是单独拿出一个缓存服务器存放session,然后所有节点共享session。 至于怎么样是最佳使用方案,目前我也不知道,毕竟技术有限,以后会慢慢去了解的。至于一些具体的cookie,session怎么使用,一些参数什么的,本文就不多介绍了,之后可能会转载一些其他人的介绍。
这里有个稍微详细点的介绍:
http://blog.csdn.net/fangaoxin/article/details/6952954
相关文章推荐
- 小心服务器内存居高不下的元凶--WebAPI服务
- 运维入门
- Angularjs 跨域请求
- kindeditor 批量上传 上传失败 thinkphp swfupload session
- 利用开源软件打造自己的全功能远程工具
- Linux5.9无人值守安装
- 数据中心和云未来的十二大趋势
- 虚拟化基础架构Windows 2008篇之11-WSUS服务器的安装与配置
- 用vsftp快速搭建ftp服务器
- Linux快速构建apache web服务器
- 服务器监控策略浅谈
- 杰奇登录后的东西都是在session里面的
- 如何降低服务器采购成本 原理分析
- 建议的服务器分区办法
- cookie的secure属性详解
- 服务器托管六大优势分析
- 浏览器 cookie 限制