session概述
这一部分我们要学习的是 session技术.
通过上一节的学习,我们知道Cookie是通过将数据保存在客户端来实现与服务端保持连接的,而Session是通过将数据保存在服务器端来实现保持连接的。我们通过一个例子来了解session的机制。
我们去饮料店买饮料,下单以后服务员会给我们一个号码牌,然后你走到一旁,服务员并不认识你是谁,如果你想拿到你的饮料,你必须提供你的号码牌给服务员才可以,服务员通过号码牌来查记录,来确认你是顾客,确认你点了什么饮料,然后才会把你点的饮料给你。
了解了session原理,再回到Web技术中,我们有2种方法让客户端拿到“号码牌”,一种是通过cookie,一种是通过把值嵌入网页传给客户端。我们也有2种方法来让客户端把号码牌传给服务器来拿属于自己的资料,一种是cookie,一种是标准的Query String/POST。
而我们常用的是cookie,因为现在的浏览器都支持cookie,默认也都开启。客户端与服务端彼此都会将cookie发送给对方。来个过程说明一下:打开浏览器输入 www.taobao.com 并回车,由于是第一次与这个网站建立连接,服务端还没有设置过cookie(这里假设当前浏览器是第一次访问这个网址,之前这个网址没有向当前客户端写过cookie),所以没有cookie发送到服务端,服务端在处理完数据返回的时候,会将一个name为sessionid,value为一连串N位字符的cookie发送给客户端,后续客户端再次访问服务端的时候,也会带上这个cookie来访问服务端。于是,他们就这样通过sessionid互相“认识”了。