Cookie、Session浅析
来源:互联网 发布:直播网站程序源码 编辑:程序博客网 时间:2024/05/20 13:40
一、Cookie
1、概念
存在于客户端,cookie就是服务器在你的电脑上保存了一些数据,并且是文本文件。当你下一次访问同一个服务器的时候,这个服务器会将一些键值对返回给客户端浏览器,从你的cookie资料里读出它上次保存的文本内容,进行判断,如果符合条件,就会给你相应的内容。
2、作用
在一个很短的时间内,如果与用户相关的数据被频繁访问,可以针对这个数据做缓存,这样可以大大提高数据的访问性能。
由于是同一个客户端发出的请求,每次发出的请求都会带有第一次访问时服务端设置的信息,这样服务端就可以根据 Cookie 值来划分访问的用户了。
3、创建
HttpCookiecookie=new HttpCookie["key"];
cookie.Value="good";
Response.AppendCookie(cookie); //写到本地浏览器
cookie.Values.Add("Dwyane","good");
cookie.Values.Add("kaoya","haochi");
cookie.Values.Add("Pijiu","haohe");
Response.AppendCookie(cookie);
4、使用
HttpCookiecookie=Request.Cookies["aspcn"];
value1=cookies.Values["webmaster"];
value2=cookies.Values["writer"];
HttpCookiecookie=Request.Cookies["strKey"];
if(null==cookie)
{
//cookie不存在
}
二、Session
1、概念
存在于服务器端,Cookie可以让服务端程序跟踪每个客户端的访问,但是每次客户端的访问都必须传回这些 Cookie,如果 Cookie 很多,这无形地增加了客户端与服务端的数据传输量,而Session 的出现正是为了解决这个问题。
同一个客户端每次和服务端交互时,不需要每次都传回所有的Cookie 值,而是只要传回一个 ID,这个 ID 是客户端第一次访问服务器的时候生成的,而且每个客户端是唯一的。这样每个客户端就有了一个唯一的ID,客户端只要传回这个 ID 就行了,这个 ID 通常是 NANE 为 JSESIONID 的一个 Cookie。
2、如何工作
有了 Session ID 服务端就可以创建HttpSession 对象了,第一次触发通过 request.getSession() 方法。如果当前的 Session ID 还没有对应的HttpSession 对象,那么就创建一个新的,并将这个对象加到 org.apache.catalina. Manager 的 sessions容器中保存。Manager 类将管理所有 Session 的生命周期,Session 过期将被回收,服务器关闭,Session 将被序列化到磁盘等。只要这个HttpSession 对象存在,用户就可以根据 Session ID 来获取这个对象,也就达到了状态的保持。
3、创建
Session["变量名"]=值;
Session.Add("变量名",值);
如:Session["username"]="zs";等同于Session.Add("username","zs");
4、使用
Session["变量名"]就可以了
Session["username"]这就代表"zs"这个字符串
5、移出
Session.RemoveAll()或者 Session.Clear()
一般情况下Session的有效时间为20分钟
Session.Timeout=…;
常应用的场景:登录
三、安全性
虽然 Cookie 和 Session都可以跟踪客户端的访问记录,但是它们的工作方式显然是不同的,Cookie 通过把所有要保存的数据通过 HTTP协议的头部从客户端传递到服务端,又从服务端再传回到客户端,所有的数据都存储在客户端的浏览器里,所以这些 Cookie 数据可以被访问到。
就像我们前面通过 Firefox 的插件HttpFox 可以看到所有的 Cookie 值。不仅可以查看 Cookie,甚至可以通过 Firecookie 插件添加、修改 Cookie,所以Cookie 的安全性受到了很大的挑战。
相比较而言 Session 的安全性要高很多,因为Session 是将数据保存在服务端,只是通过 Cookie 传递一个 SessionID 而已,所以 Session 更适合存储用户隐私和重要的数据。
总结
关于cookie和session还有很多需要我去学习,这些只是对它们的简单理解。。
分享:深入理解Cookie与Session
分享:登陆案例(记住账号和密码)
- session和cookie浅析
- Cookie、Session浅析
- 浅析session、cookie原理机制
- session与cookie的关系浅析(转)
- 浅析PHP中cookie与session技术
- 浅析回话技术之Session和Cookie
- session与cookie的区别浅析
- Cookie浅析
- Cookie浅析
- Session,Cookie
- cookie & session
- Cookie & Session
- Session, Cookie
- Session、Cookie
- SESSION && COOKIE
- Cookie & Session
- SESSION && COOKIE
- Session.Cookie
- SpringMVC中处理json数据
- margin外边距
- 算法概论8.20题解
- 老师写的分页查询(不用aiax)
- linux上课随笔—进程间通信:管道
- Cookie、Session浅析
- Javascript高级程序设计——8.时间与日期
- /proc/N/maps 信息是如何生成的?
- SpringMVC小结2
- Reverse Integer
- VS2013/MFC编程入门之十四(对话框:一般属性页对话框的创建及显示)
- |洛谷|模拟|P2689 东南西北
- Python模块学习:threading 多线程控制和处理
- C语言小游戏“扫雷”