简单理解cookiesession机制

  中的一项基本技术——会话(用户与客户端的交互)跟踪技术,用来跟踪用户的整个会话。简单来说,cookie是通过在客户端记录信息确定用户身份的,而session则通过在服务器端记录信息确定用户身份。

  cookie是服务器传给客户端的体积很小的纯文本文件。客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器发一个cookie。客户端浏览器会把cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该cookie一同提交给服务器。服务器检查该cookie,以此来辨认用户状态。

  cookie会附在请求资源的HTTP请求头上发送给服务器,服务器通过相应方法获得该cookie。

  过期时间:对于会话cookie,如果不设置过期时间,表示这个cookie的生命期为浏览器的会话期间,关闭浏览器窗口,cookie就消失了,会话cookie一般保存在内存里。对于持久cookie,设置了过期时间,浏览器会把cookie保存在硬盘上,存储在硬盘上的cookie会在不同的浏览器进程间共享。

  判断注册用户是否已经登录网站:用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录流程。

  根据用户的爱好定制内容:网站创建包含用户浏览内容的cookies,在用户下次访问时,网站根据用户的情况对显示的内容进行调整,将用户感兴趣的内容放在前列。

  实现永久登录:如果用户是在自己家的电脑上上网,登录时就可以记住他的登录信息,下次访问时不需要再次登录,直接访问即可。

  实现自动登录:当用户注册网站后,就会收到一个惟一用户ID的cookie。用户再次连接时,这个用户ID会自动返回,服务器对它进行检查,确定它是否是注册用户且选择了自动登录,从而使用户无需给出明确的用户名和密码,就可以访问服务器上的资源。

  使用cookie记录各个用户的访问计数:获取cookie数组中专门用于统计用户访问次数的cookie的值,将值加1并将最新cookie输出。

  使用cookie记住用户名与用户密码。用户勾选了“自动登录”,就把用户名和密码的信息放到cookie中。同时可设置有效期。

  用cookie实现新手大礼包等弹窗功能。同理,将新手大礼包弹窗逻辑写入到cookie中,并设置相应的有效期。比如在有效期内只弹出一次该弹窗,超过有效期登录后再次弹出弹窗。

  session是另一种记录客户状态的机制,不同的是cookie保存在客户端浏览器中,而session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。客户端浏览器再次访问时只需要从该session中查找该客户的状态就可以了。session相当于程序在服务器上建立的一份用户的档案,用户来访的时候只需要查询用户档案表就可以了。

  为了获得更高的存取速度,服务器一般把session放在内存里。每个用户都会有一个独立的session。如果session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出。session的使用虽然比cookie方便,但是过多的session存储在服务器内存中,会对服务器造成压力。因此,session里的信息应该尽量精简。

  session在用户第一次访问服务器的时候自动创建。session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该session。

  由于有越来越多的用户访问服务器,因此session也会越来越多。为防止内存溢出,服务器会把长时间内没有活跃的session从内存中删除。这个时间就是session的超时时间。如果超过了超时时间没访问过服务器,session就自动失效了。

  虽然session保存在服务器,但是它的正常运行仍然需要客户端浏览器的支持。这是因为session需要使用cookie作为识别标志。HTTP协议是无状态的,session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为SESSIONID的cookie,它的值为该Session的id。Session依据该cookie来识别是否为同一用户。

  对于不支持cookie的手机浏览器,有另一种解决方案:URL地址重写。URL地址重写的原理是将该用户session的id信息重写到URL地址中,服务器能够解析重写后的URL获取session的id。这样即使客户端不支持cookie,也可以使用session来记录用户状态。

  通过session累计用户数据。例如,一个未登录用户访问了京东网站,这个时候京东对其下发了一个 cookie,假设cookie的名字叫做abc,那这条记录就是 abc=001,同时京东的后台也生成了一个 session id, 它的值也为 001, 001 这个客户在 2 点、 3 点、 4 点分别添加了三件商品到购物车,这样后台也记录了 session id 为 001的用户的购物车里面已经有三件商品,并且只要每次客户端 cookie 带上来的值里面包含session id,后台都能够展示相应的数据,如果这个时候,在浏览器里面清空 cookie,cookie 数据消失之后,后台和客户端无法建立对应关系,购物车的数据就会失效了。

  通过session实现单点登录。一个用户帐号成功登录后,在该次session还未失效之前,不能在其他机器上登录同一个帐号。登录后将用户信息保存到session中,如果此时在另外一台机器上一个相同的帐号请求登录,通过遍历(遍历的意思就是将所有session都查看一遍)Web服务器中所有session并判断其中是否包含同样的用户信息,如果有,在另一台机器上是不能登录该帐号的。

  SSL证书不安全是怎么回事?但是点进去这个提示后,显示的是别人的tdk是不是被劫持或者被黑了?...

  打开网站,人们自然会从上往下浏览,首先映入眼帘的一定是BANNER主视觉,然后是网站主体内容部分。相比较而言,注意到网站底部版权信息的浏览者确实不多,但这并说明网站版权信...

  对于网站设计来讲会受到很多因素的影响,而且不同类型的网站,在设计时需要体现的元素也不一样,比如说对于一个企业网站更想体现出品牌以及产品的特点,主要是对产品、企业信...

  网站改版,是每个建站企业必须面临的工作。相信也有不少站长问,已经做好的企业网站,为何还要大费周章重新进行改版设计呢?下面小编就来给大家说说,企业究竟为什么要改变,并...

  随着互联网建站尤其是自助建站热潮不断高涨,建站行业涌现出越来越多的自助建站平台,这些平台普遍都提供网站模板可选。...

  认识我的人都知道,我的文章一样平常就两个偏向;一是讲实操项目(尤其是假造资源项目方面,)然后就是讲技能:讲得最多的就是主...

  阿里云ECS办事器是现在许多网站客户在利用的,可以利用差别体系在办事器中,windows2008 windows2012,linux体系都可以在阿里云办事器中利用,...

  近些年,自助建站体系受到许多企业和小我私家的接待,许多小我私家和企业建站都市思量自助建站。自助建站对付我们的利益实在照旧...

  小程序创业扶持计划 实现月入10万创业梦 我们大家都知道,background-image这个属性是用来设置背景图片的,一般的写法是background-image:url()。这种写法也是最常用最普遍的方法,可以直接...

  邮件是我们最常用的沟通工具之一,在工作中更是经常使用。对于企业来说,搭建邮件服务器更是必不可少。为了让大家更容易理解搭建的原理与过程,在搭建之前我们先来了解下有关...

上一篇:想明显提高用户转化率?试试用这些文案技巧!
下一篇:进阶之路!一流用户体验设计师的6个共同点

欢迎扫描关注我们的微信公众平台!

欢迎扫描关注我们的微信公众平台!