http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html
简单来说
Cookie存放于客户端,Session存放于服务端
Cookie不安全,Session安全
Session存放多了会占用性能,Cookie如果保存时间比较长是存放于硬盘上的可以永久保存
Session原理机制
服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息当客户端向服务器发送请求创建session时。服务端会检查session标示sessionID,如果检索到则取出用,没检索到则重新创建。sesssionID返回给客户端cookie保存,用cookie保存之后就可以做一些网站“下次自动登录”的功能
但是cookie可以被禁止,此时需要另用方法将sessionID传回服务器
常用方法
经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。还有一种技术叫做表单隐藏字段。就是服务器
会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session id传递回服务器。比如:
<form name="testform" action="/xxx">
< input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764">
< input type="text">
< /form>
实际上这种技术可以简单的用对action应用URL重写来代替。
Cookie原理机制
Cookie主要包括名字 时间 路径和域,其中域和路径一起构成cookie的作用范围。
会话Cookie:没有设置生命周期,浏览器关闭,Cookie消失,一般保存在内存里
若设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie仍然有效直到超过设定的过期时间。存储在硬盘上的cookie可以在不同的浏
览器进程间共享,比如两个IE窗口。而对于保存在内存里的cookie,不同的浏览器有不同的处理方式