cookie的使用原理

来源:互联网 发布:刺身盖饭 知乎 编辑:程序博客网 时间:2024/06/05 21:12

用户—— 假设是Bob—— 希望查看页面A,匿名用户不可以访问这个页面,因此当Bob试图访问页面A时,浏览器取而代之显示一个登录页面
Bob现在面对着登录页面。由于Bob以前已经在该站点上注册过,因此他使用他的用户名和口令组合登录这个站点。
Bob现在可以浏览页面A并因此感到高兴。现在Bob希望通过页面A上的一个链接查看页面B。在发送该页面的请求时,Bob的浏览器同时将cookie的一个副本发送到服务器,让服务器知道是Bob想要查看这个页面。服务器知道Bob的身份,而且喜欢Bob,所以根据请求将页面B发送给Bob
如果Bob现在请求站点的主页,浏览器仍会将cookie和请求一起发送到服务器,因此即使主页不是受限的内容,cookie仍会被传递回服务器。由于主页没有受到限制,服务器不会考虑cookie,直接忽略它并将主页发送给Bob。
Bob接着返回页面A。因为Bob机器上的cookie仍然是有效的,所以该cookie仍会被送回服务器。服务器也仍然喜欢Bob,所以它允许Bob浏览这个页面。
 Bob离开计算机并享受了一杯咖啡。然后去吃午饭。当他重新回到计算机前时,已经过了25分钟。Bob现在希望再次浏览页面B,但是他机器上的cookie已经过期了。服务器在接收页面请求时没有得到cookie,所以Bob必须重新登录。
一般都会将用户机器上的cookie设置为在一定时间之后过期。在上面的情景中,服务器为cookie指定了20分钟的有效期,这意味着只要在20分钟之内向服务器发送两次请求,本地机器上的cookie就将一直保持活动状态。然而,如果20分钟之内没有向站点发出请求,用户将必须重新登录才能查看受限的内容。
您将注意到在前面的示例中创建的登录页面为用户提供了“remember my details for next time”(记住用户名)选项。选中该选项将在浏览器的cookie集中写入一个有效时间更为长久的cookie,在下次访问这个站点的时候,您的账户名将提前显示在页面上。由于不应将口令信息保存在cookie中,因此每次登录都必须输入口令,但至少不用输入用户名字段。