cookie登录_产品必懂知识点:cookie和session

f28f86df97ad3dfa21b98910dbdee7cc.png

一条HTTP请求会记录用户的信息吗?

服务端如何识别特定用户?

多个域名共用登录态是怎么做到的?

了解cookie和session的概念就可以轻松解答以上问题~

本文目录:

1、了解HTTP协议

2、cookie的概念和作用

3、session的概念和作用

一、了解HTTP协议

http是不保存状态的协议。这里的状态指的是信息。在每一条http请求和响应之间的通信状态(包括接口请求参数、响应返回的数据),http是不会做保存的。

6b5aa29ea332ddf50acfc3197824069e.png

我们考虑一个问题,假设对已经登录的用户进行状态管理,已经登录过的用户就不再跳转登录页,那我们怎么识别这个用户是已登录用户?cookie就此诞生了,往下看~


二、cookie的概念和作用

cookie技术通过在http请求头和响应头中写入cookie信息来控制客户端状态。cookie以 key:value的形式存储。

我们通过一个用户登录的例子来看下cookie写入的过程:

1、当用户第一次登录时,服务端会在后台的内存里面创建一个id来唯一识别这个用户。

2、服务端创建完id后就返回这个id(使用set-cookie这个字段名)然后告诉浏览器存储这个cookie。此时这个id就是cookie。3、浏览器存储好后,在以后每次的http请求中,都带上这个cookie。4、在以后每次的http请求,服务端都会去把浏览器发送过来的cookie和后台内存里存的 id 对比是否一致,如果一致则正常返回数据,如果不一致则返回未登录的状态给到浏览器,这时浏览器就会跳转到登录页。

cookie还有几种属性可以设置:(讲下几个常用的)1、expires属性 用于设置cookie的有效期,就是平时我们说的登录态有效期。假设你设置登录态有效期是1天,过了一天之后浏览器就不会发送该cookie给服务端了,这时候就会跳到登录页。

2、domain属性domain属性用于指定cookie的有效域名,比如你把cookie指定到http://www.a.com,那浏览器只会在这个域名下的请求才会发送cookie。该属性可用于多域名登录态共用的场景。域名可以指定在二级域名、三级域名(更多)下面,比如如果把域名指定在 .http://a.com下面,那么 http://b.a.com 、http://c.a.com的登录态(cookie)是共用的。

其实cookie不仅仅只是拿来保存用户登录态信息,登录态信息只是占用了cookie里面的其中一个字段:set-cookie,它还可以存储其他的字段,用于做别的事情。

三、session的概念和作用

其实上面有讲到,当用户第一次做登录时,服务端会在后台内存里面存储一个唯一的id,这个id就是session id,这个session id下面还可以存储一些数据,比如用户id、名字、性别、城市等信息,当某个请求需要这些信息时直接从session里面取会特别方便和快捷(可以不用像往常一样从数据库里面取数据)。

小结:cookie是基于session的,在服务端创建好session响应浏览器后,cookie就被存储在浏览器。cookie和session id有着一一对应的关系。

更多文章欢迎关注公众号:产品的技术小课

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值