Session原理浅析
什么是Sesson?
简单说就是一个会话级的cookie,外加服务器端内存中一组散列表。
当你关闭浏览器的时候,这个cookie将消失。
这个cookie不写在磁盘上,而是存在于浏览器缓存。
关于Session的传说
传说中,Web应用程序中的Session和Application保存服务器端,而cookie保存在客户端。
其实Session同时存在于客户端与服务器端。
开发中如果你已经写了一个Session,打开火狐浏览器,清理cookie的时候你会找到一个session_id(java开发者会看到JSESSIONID)的cookie,删除他后Session将失效。
如果你打开的是IE浏览器,清理cookie后Session依然存在,我不知道IE是怎么处理的,也许它只从磁盘里去清理。
Session实现原理
1、创建Session的时候,服务器将生成一个唯一的sessionid然后用它生成一个关闭浏览器就会失效的cookie。
2、然后再将一个与这个sessionid关联的数据项加入散列表。
例如这样一段代码:Session["UserName"]=23;
假设sessionid为123那么散列表中会追加一行
sessionid username
123 23
3、当浏览器端提交到服务器时,会通过sessionid=123去散列表中寻找属于该用户的Session信息。
Session原理浅析的更多相关文章
- 消息队列——ActiveMQ使用及原理浅析
文章目录 引言 正文 一.ActiveMQ是如何产生的? 产生背景 JMS规范 基本概念 JMS体系结构 二.如何使用? 基本功能 消息传递 P2P pub/sub 持久订阅 消息传递的可靠性 事务型 ...
- MyBatis 原理浅析——基本原理
前言 MyBatis 是一个被广泛应用的持久化框架.一个简单的使用示例如下所示,先创建会话工厂,然后从会话工厂中打开会话,通过 class 类型和配置生成 Mapper 接口的代理实现,最后使用 Ma ...
- HTTP长连接和短连接原理浅析
原文出自:HTTP长连接和短连接原理浅析
- session原理总结
session原理总结 session多服务器共享的方案梳理 session原理 session的工作原理 客户端禁用cookie时session解决方案[转]
- Javascript自执行匿名函数(function() { })()的原理浅析
匿名函数就是没有函数名的函数.这篇文章主要介绍了Javascript自执行匿名函数(function() { })()的原理浅析的相关资料,需要的朋友可以参考下 函数是JavaScript中最灵活的一 ...
- [转]PHP Session原理分析及使用
之前在一个叫魔法实验室的博客中看过一篇<php session原理彻底分析>的文章,作者从session的使用角度很好阐述了在代码运行过程中,每个环节的变化以及相关参数的设置及作用.本来想 ...
- 从session原理出发解决微信小程序的登陆问题
声明:本文为作者原创文章,转载请注明出处 https://www.cnblogs.com/MaMaNongNong/p/9127416.html 原理知识准备 对于已经熟悉了session原理的同 ...
- python---cookie模拟登陆和模拟session原理
cookie模拟登陆: import tornado.web class IndexHandler(tornado.web.RequestHandler): def get(self): #self. ...
- [转帖]Git数据存储的原理浅析
Git数据存储的原理浅析 https://segmentfault.com/a/1190000016320008 写作背景 进来在闲暇的时间里在看一些关系P2P网络的拓扑发现的内容,重点关注了Ma ...
随机推荐
- git如何撤销合并
撒销一个合并 如果你觉得你合并后的状态是一团乱麻,想把当前的修改都放弃,你可以用下面的命令回到合并之前的状态: $ git reset --hard HEAD 或者你已经把合并后的代码提交,但还是想把 ...
- 微信获取nickname中存在Emoji导致保存为空问题的解决
微信开发时候,有些用户使用Emoji表情作为用户昵称,导致数据库保存昵称时候不识别导致昵称为空,现在提出以下解决方案: /** +----------------------------------- ...
- substr — 详解
substr — 返回字符串的子串 举例说明: string substr ( string $string , int $start , int $length ) 返回字符串 string 由 s ...
- 【PHP面向对象(OOP)编程入门教程】6.如何去使用对象中的成员
上面看到PHP对象中的成员有两种一种是成员属性, 一种是成员方法.对象我们以经可以声明了,$p1=new Person(); 怎么去使用对象的成员呢?要想访问对象中的成员就要使用一个特殊的操作符”-& ...
- 【PHP面向对象(OOP)编程入门教程】15.static和const关键字的使用(self::)
static关键字是在类中描述成员属性和成员方法是静态的:静态的成员好处在哪里呢?前面我们声明了“Person”的人类,在“Person”这个类里如果我们加上一个“人所属国家”的属性,这样用“Pers ...
- Java(Android)线程池
1.new Thread的弊端执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() ...
- BZOJ3083——遥远的国度
1.题目大意:三个操作,换根,修改树上的某条路径,查询一个子树的最小值 2.分析:这个其实还是挺好做的,修改树上的某条路径,裸树剖,查询子树的最小值,这个是树剖满足dfs序 那么就是换根了,对吧,其实 ...
- statusbar 样式
1:statusBar字体为白色 在plist里面设置View controller-based status bar appearance 为 NO:设置statusBarStyle 为 UISta ...
- 跟着百度学PHP[4]OOP面对对象编程-9-封装性,访问控制[private、pubic、protected]
其实之前就已经在封装的时候说到了.这个也属于封装的范畴吧. 用到的三个关键字(旁边是其中文翻译) private(私有的) public(公众的) protected(受保护的) 00X1 priva ...
- 两轮自平衡小车双闭环PID控制设计
两轮自平衡小车的研究意义 ...