小白理解Cookie与Session
web程序之间的通信主要是基于http协议,但是http协议是无状态的,这就造成用户重复去访问某个服务器(网站)时,服务器(网站)每次都会把用户当成是新用户来进行处理,为了追踪用户的状态,这就引入了Cookie和Session机制。
Cookie是客户端保存用户的状态,Session是服务器端保存用户的状态。
1、Cookie机制
(1)存储:在用户浏览某些网站时,这些网站会把用户的一些数据存在客户端;
(2)分类:
会话Cookie:如果不设置过期时间,则表示Cookie的生命周期为浏览器的会话时间,关闭浏览器,Cookie就消失了,数据被存储在浏览器的内存里;
持久Cookie:如果设置了过期时间,关闭浏览器时,Cookie不会消失,再打开浏览器,Cookie依然有效,直到超过设置的过期时间;
2、Session机制
(1)存储:在用户浏览某些网站时,用户的一些数据会被存储在网站的服务器,但会给用户返回一个session id,也是一个cookie小文件,存储在客户端;
(2)保存Session id的几种方式:
采用cookie:交互过程中,浏览器会自动把Session id发给服务器端;
URL重写:把Session id 附加到URL的后面,有两种方式,一种是作为URL路径的附加信息,一种是作为查询字符串附加到URL后面;
表单隐藏字段:服务器自动修改表单,添加一个隐藏字段,在表单提交时,可以把Session传回服务器;
3、实现记录我的登录状态功能
当用户注册某个网站时,网站的服务器就会给用户返回一个Session id,当用户再次登录这个网站时,Session id被返回到服务器,服务器利用Session id检查用户是否注册并有自动登录功能等,并让用户做出相应的操作;但是,服务器端的Session 不会是一直存在的,过一段时间,服务器的Session就会被销毁,以减轻服务器端的压力。
比较常用的方法是,Cookie和Session结合,把用户的用户名和加密之后的密码通过Cookie存放在客户端,当服务器上的Session销毁以后,使用Cookie里面存放的用户名和加密之后的密码重新执行一次登录操作,重建Session,并更新客户端上Cookie中存放的的Session iD。