目录
字段介绍:
2.session
2.2session的原理
1.cookie
在大家在浏览b站的时候,都会发现一个问题,当我们登录过一次之后,下次点开b站网页自动就会登录。
这一切一切的原因就是,我们的浏览器使用cookie保存了,登录的用户名和密码,当我们在访问b站的时候,会自动向服务器登录。暂时这么理解。
点击搜索栏的小锁头就可以看到当前域,使用的cookie。
这里可以做一个实验,就是我把当前的cookie数据删除了,看他还会不会自动登录。
果然删除cookie之后,就不会自动登录了。
1.2.cookie原理
在首次向服务器进行http请求的时候呢,http应答的时候会在响应头,添加一个Set-Cookie的选项,客户端也就是浏览器接受到响应头,会将cookie的字段保存到内存中,或者是本地,在以后的访问中,每一次向服务器请求时报头都会带上cookie的字段,例:username=张三; password = 12345。
保存到内存中就是临时保存,一旦关闭浏览器,cookie的内容就会消失,保存本地就是持久化的保存,关闭浏览器之后重新启动仍然也可以自动登录。
1.3.cookie的格式以及字段
直接向http响应头中添加的字段。
Set-Cookie: name=value;
其中name是cookie的名字,value是cookie的值
想这个就是 Set-Cookie: BT=1726201902094
字段介绍:
注意:这里有个坑,过期的时间一定是UTC时间,而不是我们系统本地的时间。
完整的cookie
Set-Cookie: username=peter; expires=Thu, 18 Dec 2024 12:00:00 UTC; path=/; domain=.example.com; secure; HttpOnly
这就是要直接添加到http响应头的选项。
1.4.cookie的安全问题
cookie不仅能保存用户的登录数据还可以保存浏览偏好等隐私的信息。
如果把cookie保存的用户的浏览器中,是很容易被盗取的,因为用户的防范意识一般都很薄弱。
一旦黑客拿到了cookie,直接窃取用户的隐私数据。
2.session
session是一种保存用户状态的机制,因为http是无状态的。
例:b站的用户是不是会员,b站的等级是多少。
2.2session的原理
session的原理在用户首次访问的时候,服务器会创建出一个唯一的sessionid,通过cookie方式写到用户的浏览器中。
以后每次访问都会使用这个sessionid,服务器通过sessionid就可识别用户,获取用户会话信息这样有什么好处呢,虽然sessionid还是会有被盗窃的风险但是,只会泄露一个sessionid,用户的隐私数据因为存储到了服务器,安全性相比存储到本地会更高一些。