cookie是如何与登录功能结合起来的

1.理解一下cookie

​ 百科的解释:Cookie,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。也就是说,cookie是类似于身份证一样的东西,客户发送请求时,浏览器把请求的网址和cookie一同发送给服务器,服务器就能知道是哪个用户在发送请求。

2.理解登录

​ 为了获得网站的某些权限,往往先要注册该网站,注册就是往该网站后台的数据库增加一条用户信息的记录,表示拥有这个信息的用户成为了该网站的用户,而为了使每次发送请求的时候,服务器都能知道发送该请求的用户已经注册了该网站并对用户开放某些内容的访问权(可能是个人保存在该网站的信息),这时就需要登录功能。也就是用户先发送个人信息给服务器,服务器将该信息和后台保存的用户信息做对比,就能确认用户的身份,给该用户提供专属的服务。但用户在登录后往往需要进行多个操作,发送多个请求,如果每次请求都要登录,也就是发送用户的信息给服务器,未免太过麻烦,那服务器接收请求时怎么知道这个用户已经登录过了呢?这是登录需要解决的问题。

3.cookie和登录相结合。

思考几个问题,用户登录之后,浏览器可不可以给登录过的用户的cookie做一些改变?也就是制定一个cookie专属于这个用户,让浏览器通过cookie不仅仅能辨别出这个用户,还能知道它是否登录过。还有用户退出登录时,这个cookie用不用改变。

结合上述思考分析,可以知道:

当用户登录时,也就是发送请求和cookie给服务器,服务器对个人信息进行验证后,响应登录请求,而服务器为了标记该用户已经登录过了,会对其带来的cookie进行一些修改,比如增加一个值或者删除一些值。然后把这个cookie返回给客户,同时服务器也会在数据库中保存这个修改后的数据。当用户发送请求时带上这个cookie,服务器通过将cookie和保存在数据库中的cookie做对比,就知道该用户是否登录过。

当用户退出登录时,发一个请求给服务器,服务器为了标记该用户已经退出登录,服务器会对cookie再次进行修改。所以通过cookie,服务器就能轻轻松松辨认出用户的登录和未登录状态。

补充几个知识点:

cookie和域名:

1、cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。

1)Name 和 Value 属性由程序设定,默认值都是空引用。

2)Domain属性的默认值为当前URL的域名部分,不管发出这个cookie的页面在哪个目录下的。

3)Path属性的默认值是根目录,即 ”/” ,不管发出这个cookie的页面在哪个目录下的。可以由程序设置为一定的路径来进一步限制此cookie的作用范围。

4)Expires 属性,这个属性设置此Cookie 的过期日期和时间。

可以知道把cookies的path属性设置成“/”。在指定路径的时候,凡是来自同一服务器,URL里有相同路径的所有WEB页面都可以共享cookies。,而这个属性的默认值就是“/”,故通常同一域名下的页面共享一个cookie。也可以说cookie和域名是绑定在一起的,访问百度时不会带上谷歌的cookie,因为域名不同。

domain属性默认值是域名,也就是cookie的域是域名。

若访问一个页面,域名为顶级域名,如baidu.com,那这个页面只能获取到域设置为顶级域名的cookie,其他域设置为二级域名的cookie无法获取。

若访问的是百度文库,域名为wenku.baidu.com,这是一个二级域名,那这个页面可以读取domain为baidu.com的cookie,也可以读取domain为wenku.baidu.com的cookie。

所以如果我们想让 www.china.com能够访问bbs.china.com设置的cookies,该怎么办? 我们可以把cookie的domain属性设置成“china.com”,并把path属性设置成“/”,这样两个都能访问这个cookies。

cookie的域名的设置有限制:

如果域名为顶级域名,则cookie只能设置域名为顶级域名,不能设置为二级域名或者三级域名。

如果域名为非顶级域名,则cookie的域名只能为顶级域名或者其他二级域名或者三级域名本身。不能将其设置为 其他二级域名。如wenku.baidu.com这个域名不能将其设置为域名为zhidao.baidu.com的cookie。

未指定域时,默认的域为用哪个域名访问就是哪个,如果为顶级域名访问,那么可以被其他2级域名共享。

如果不是非顶级域名访问,又需要全部该域名下的页面共享这个cookie,那cookie的域可以设置为顶级域名。

那全部该顶级域名下的页面都能共享着cookie。

cookie的作用之一——登录相关推荐

  1. php的cookie变量作用,PHP语言中cookie的作用

    PHP语言中cookie的作用 时间:2015-11-9 Cookie的概念最早是由Netscape在1994年提出来的,它是保存在浏览器中的小信息包,更确切地说,Cookie是保存在客户端硬盘里的, ...

  2. Cookie的作用是什么?和Session有什么区别?

    Cookie 和 Session都是用来跟踪浏览器用户身份的会话方式,但是两者的应用场景不太一样. Cookie 一般用来保存用户信息 比如①我们在 Cookie 中保存已经登录过的用户信息,下次访问 ...

  3. Python培训分享:python如何用cookie实现自动模拟登录?

    本期教程Python培训教程为大家带来的是python如何用cookie实现自动模拟登录?据小编的了解,python实现cookie自动登录,目前来说有许多第三方库都可以直接使用,这里以常用的requ ...

  4. HTML用cookie实现自动登录,用cookie实现websocket自动登录,session状态保留。

    原标题:用cookie实现websocket自动登录,session状态保留. 会话状态的保留,即登录状态保持,是很常见.很常用的功能. 本文将介绍,在NodeJS开发中,如何实现websocket连 ...

  5. python通过cookie绕过验证码_Python Selenium Cookie 绕过验证码实现登录示例代码

    之前介绍过通过cookie 绕过验证码实现登录的方法.这里并不多余,会增加分析和另外一种方法实现登录. 1.思路介绍 1.1.直接看代码,内有详细注释说明 # FileName : Wm_Cookie ...

  6. SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

    最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jQuery ajax跨 ...

  7. PHP不同域名cookie共享(单点登录实现原理)

    PHP使用P3P完成COOKIE跨域操作 实际实用中,类似的需求有,比如说我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是单点登录(SSO)功能. 为了测试的方便,先编辑 ...

  8. php跨域单点登录,SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析...

    SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1. 跨域redirect实例: te ...

  9. Web项目,要求:保存用户名和密码在Cookie中,下次登录不再重新输入

    设计一个实现登录功能的Web项目,要求:保存用户名和密码在Cookie中,下次登录不再重新输入 var cookie = {};//设置 cookie.SetCookies=function(name ...

最新文章

  1. asp.net 页面刷新后,滚动条仍保持在原来的位置
  2. 网站模糊测试爆破工具Wfuzz
  3. hdu 5072 Coprime
  4. 三维重建6:绑架问题/SensorFusion/IMU+CV-小尺度SLAM
  5. leetcode - 136. 只出现一次的数字
  6. 再谈.NET Micro Framework移植
  7. 2018.09.19python学习第七天part1
  8. html5中box-shadow,CSS阴影效果(Box-shadow)用法趣味讲解
  9. Oracle控制文件日志文件数据文件迁移
  10. Ant-编译构建(1)-HelloWorld
  11. Oracle 11gR2 RAC 修改监听端口号
  12. java一元二次方程用if_用javascript写一个求一元二次方程的页面 用JAVA写一个求解一元二次方程的类...
  13. 来,看看记事本里会变成乱码的字……不仅仅是“联通”而已……
  14. gephi mysql_用爬虫和 Gephi 研究微博好友二度人脉分析|Mo’s blog
  15. Antelopenbsp;和Barracuda区别
  16. STM32 FSMC 16位寻址 地址移位的解读
  17. Android实现PDF格式文件预览
  18. 你是开发工程师、程序员还是码农?
  19. CSharp再爱我一次,你真的懂泛型吗?
  20. word域操作及操作页码实例

热门文章

  1. javascript解析JSON返回的日期格式
  2. 全志Tina系统调频调压
  3. Js事件处理之“事件传播三个阶段”
  4. 火狐提示“无法载入样式列表”
  5. AI帮60年代老技术解决面料数字化难题,王华民团队新方法只需3分钟数据采集复刻面料真实效果...
  6. SQL排序号(ROW_NUMBER)用法
  7. 爱国者电子进入上市静默期或登创业板
  8. 吸烟(抽烟)检测和识别2:Pytorch实现吸烟(抽烟)检测和识别(含吸烟(抽烟)数据集和训练代码)
  9. 计算机中移动文件几种方式,Mac 教程:OS X「剪切」移动文件的三种方法
  10. 软件操作界面超过屏幕显示的解决方案