十、深入理解Cookie机制

https://blog.csdn.net/ak739105231/article/details/102561723

前言:cookie是很简单的知识,也是Web端一个重要的数据来源;现在就利用Fiddler来抓取HTTP请求,理解cookie实现登录原理;

一、会话机制

http协议是无状态的;即:对于浏览器的每一次请求,服务器都会独立处理,请求之间不相关联;这样服务器并不知道是哪个用户的请求,为了让服务器识别到对应浏览器;就需要服务器、浏览器共同维持一个状态,这就是会话机制;

cookie机制是一种会话机制,cookie是浏览器用来存储少量数据的一种机制,以“key=value”形式存储。

二、认识cookie

浏览器---》服务器,通过http请求header,如:"Cookie : ip_country=CN……"

服务器---》浏览器,通过http响应header,如:"Set-Cookie :  ip_country=CN……"

1.cookie的属性:

Expires属性:Expires的值是一个时间,代表过期时间;

Path属性:表示Cookie所属的路径,asp.net默认是“/”;就是根目录;cookie只能让其path路径下的页面访问

HttpOnly属性:这是关于安全方面的属性,将一个Cookie下设置HttpOnly后,javaScript脚本将无法读取cookie信息;有效的防止了XSS攻击;

2.cookie的作用:

a.除了用来做用户认证外,还可以保存用户的一些其它信息;

b.cookie也可以用于互联网精准广告定向技术,例如:某个用户浏览了某些商品,就可以用cookie将其记下,对其精准定位。

二、cookie分类

1.会话cookie是一种临时的cookie,它记录了用户的访问站点时的设置和偏好;关闭浏览器,会话cookie就被删除了;

2.持久cookie存储在硬盘上,不管浏览器退出或者计算机重启,持久cookie都继续存在。持久cookie有过期时间;

三、cookie保存在哪里?

Cookie时存在硬盘上的,每个浏览器的cookie存储目录不同,互不干涉。

四、使用和禁用cookie

在控制面板--internet选项--》可以禁用cookie

五、网站自动登录的原理(截图也有植入cookie的方式

在登录页面输入密码、用户名,选择保存密码单击登录(此时,你的计算机已保存好了登录的cookie,你可以找到cookie,复制下来),然后清空缓存,访问你刚刚访问的链接,带上你复制的cookie,你自己已经是登录状态了;

实例:不需用账号、密码,就可访问一个网址(如:http://athena-mf.x'x'x'x'x.com/index

1.在B计算机登录,获取到cookie:

Cookie: JSESSIONID=0b015a9a-5741-47eb-a707-4fd2b1dc75ab;

2.在A计算机上,使用Fiddler的FiddlerScript编辑脚本,在request的header中add 这个cookie;然后在浏览器中直接访问http://athena-mf.x'x'x'x'x.com/index,你会发现你已成功登录;

六、cookie与文件缓存的区别

很多人把cookie和文件缓存混淆,其实他们是完全不一样的东西;唯一可能一样的是他们存在硬盘上的同一个目录下;

七、session与cookie与token各自的意义

1.cookie是存储在客户端,Session是存储在服务端,而客户端值存储在SessionId;

Session是将要验证的信息存储在服务端,并以SessionId和数据进行对应,SessionId有客户端存储,在请求时将SessionId也带过去,因此实现了状态的对应;

2.Token是在服务端将用户信息经过Base64Url编码过后传给客户端,每次用户请求的时候都会带上这一段信息,因此服务端拿到此段信息进行解密后就知道此用户是谁了,这个方法叫做JWT(Json Web Token);

说明:Token相比较于Session的优点是,当后端系统有多台时,由于是客户端访问时直接带着数据,因此无需做共享数据的操作;(注:Session的方式,共享数据的操作是将Session存储在Redis);

Token的优点:

1.简洁:可以通过URL,POST参数或者是在HTTP头参数发送,因为数据量小,传输速度也很快。

2.自包含:由于串包含了用户所需要的信息,避免了多次查询数据库

3.因为Token是以Json的形式保存在客户端的,所以JWT是跨语言的。

4.不需要在服务端保存会话信息,特别适用于分布式微服务。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷凝娇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值