Cookie与Session流程及区别

目录

1:实现状态保持的原理

Session

cookie和session的本质区别

如何寻找自己浏览器的cookie


1:实现状态保持的原理

登录一个网站时常常会涉及到用户登录的状态保持,来使得用户获得更好的体验。那么cookie和session就是为了实现状态保持的

  1. Cookie是HTTP协议的规范之一,它是服务器和客户端之间传输的小数据。
  2. Cookie就是服务器保存在客户端的数据,是一个键值对
  3. Cookie通过请求头和响应头在服务器与客户端之间传输,大小限制在4KB之内;

实现流程:

  1. 用户在登录时向后端服务器发送post请求,服务器接受请求,检验请求参数无误后,处理登录业务逻辑,返回响应。
    此时服务器端生成对应的cookie字符串,响应到前端浏览器
  2. 浏览器本地保存cookie值
  3. 在登录后用户再向服务器发送请求,则带着浏览器本地保存的cookie值,发送给服务器
  4. 服务器在接受到请求后,获取到请求参数(里面带有cookie),服务器将获取的cookie值跟之前服务器生成的cookie比较,发现cookie值相同,则默认时同一个用户再访问服务器,从而实现用户登录状态保持。

Session

 session是依赖Cookie实现的。session是服务器端对象

 session对象是保存在服务器端的,而sessionId是通过Cookie保存在客户端的。

因为Cookie不能在多个浏览器中共享,所以session也不能在多个浏览器中共享。也就是说,使用IE登录后,再使用FireFox访问服务器还是没有登录的状态。

 而且同时打开多个相同浏览器的窗口,是在使用同一session。如果你使用的是老浏览器,例如IE6,那么就会每个窗口一个session。

实现流程:

  1.   当用户第一次使用session时(表示第一次请求服务器),服务器会创建session,并创建一个Cookie,在Cookie中保存了session的id,发送给客户端。这样客户端就有了自己session的id了。但这个Cookie只在浏览器内存中存在,也就是说,在关闭浏览器窗口后,Cookie就会丢失,也就丢失了sessionid。
  2. 当用户第二次访问服务器时,会在请求中把保存了sessionid的Cookie发送给服务器,服务器通过sessionid查找session对象,然后给使用。
  3. 当用户关闭了浏览器窗口后,再打开浏览器访问服务器,这时请求中没有了sessionId,那么服务器会创建一个session,再把sessionId通过Cookie保存到浏览器中,也是一个新的会话开始了。
  4. 原来的session会因为长时间无法访问而失效。session默认失效时间是半小时,服务器关闭时session可能也会关闭

cookie和session的本质区别

 

  1.   cookie和session都是基于键值对的字符串;
  2.   俩个都是都由后端服务器生成的;
  3.   cookie字符串保存在客户端浏览器中,session值保存在服务器中,session比cookie更安全。
    (cookie相当于明文,而session类似于密文,是由后端服务器经过编码后的一段无序字符串)
  4. session是key-value格式的数据,则它的键session_id保存在cookie中的,值session_data保存在服务器,通过key来取到value;
     

如何寻找自己浏览器的cookie

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值