美文网首页
会话控制

会话控制

作者: 渚清与沙白 | 来源:发表于2023-11-12 14:46 被阅读0次

实现会话控制的方式有cookiesessiontoken
作用:实现会话控制,服务器可以识别用户身份

Cooike

cooike是HTTP服务器发送到用户浏览器并按照域名划分保存在本地的一小块数据。
浏览器像服务器发送请求时,会自动将当前域名下可用的cookie设置在请求头中,传递给服务器。

运行流程

浏览器发起请求,服务器校验身份后,下发cookie,后续请求浏览器自动携带cookie

浏览器操作cookie

禁用cookie
删除cookie
查看cookie

生命周期

生命周期结束关闭浏览器后,cookie就消失了
设置生命周期:Max-Age

Ssession

session是服务器端的一种数据结构,用来跟踪用户的状态
session的生命周期是由服务器来维护的,当用户关闭浏览器后,session就消失了

运行流程
  1. 用户提供用户信息发起请求
  2. 服务器验证身份
  3. 身份验证通过,创建session对象,保存用户信息
  4. 服务器生成唯一的ID,sessionID
  5. 将sessionID写入cookie
  6. 浏览器携带cookie访问服务器
  7. 服务器读取cookie,获取sessionID
  8. 根据sessionID查找session对象
session的缺点:
  1. 服务器存储的session信息都是明文的,安全性较差
  2. 服务器存储的session信息有一定的存储大小限制,如果存储的session信息过多,会影响性能
  3. 服务器存储的session信息是有时间限制的,如果用户长时间不操作,session就过期了
cookie、session区别
  1. 存储位置不同
    cookie存储在客户端浏览器,session存储在服务器上。
  2. 安全性
    cookie是客户端明文存储,session是服务端存储,安全性高。
  3. 网络传输量
    cookie 设置内容过多会增大报文体积,session只需要设置sessionid即可。
  4. 存储限制
    浏览器限制单个cookie保存数据不能超过4k,单个域名下的cookie数量也有限制。
    session 数据存在服务器,没有存储大小限制,可以存储非常大的对象。

token

token是服务端生成并返回给http客户端的已传加密字符串,token中保存着用户信息

工作流程:
  1. 用户登录,服务端生成token,并将token返回给客户端
  2. 客户端将token保存到本地,并将token传递给后端
  3. 后端根据token获取用户信息,并返回给客户端
token优点:
  1. 安全性高,token是加密的,只有服务端和客户端知道token的内容,其他人无法获取到
  2. 服务端压力更小
  3. 可以避免CSRF攻击(跨站请求伪造)
  4. 扩展性更强,服务间可以共享,增加服务节点更简单

session和cookie特征

  1. 都是由服务器生成,用来存储特定的值
  2. session是存储在服务端,cookie存储在客户端。sessionID会以类似cookie的方式返回给客户端。
    形式:响应头 set-cookie
    sessionID是服务用来识别、操作存储session值的对象的。
    一般来说,session在服务端存储的方式有文件方式、数据库方式。sessionID就是来识别这个文件、数据库某一条记录的。
  3. 客户端(浏览器,postman)在发送请求的时候,会将存活可用的cookie封装在请求头中和请求一起发送给服务端。浏览器自行操作。其他客户端不会自行处理封装cookie。
    形式:请求头 cookie
  4. 都有生命周期
    cookie的生命周期影响因素:①服务端生成cookie时设定的时间;②客户端是否保留了 cookie。未保留,别的客户端拿着这个cookie去访问一样有效。
    session的生命周期影响因素:①服务器对session对象的保存的最大设置时间。②客户端进程是否关闭,只对客户端自身有影响。
  5. 都有作用域

相关文章

  • java基础-day41-Session和Cookie

    会话控制 Cookie and Session 1. 会话控制技术概述 1.1 为什么要使用会话控制 1.2 什么...

  • PHP全栈学习笔记9

    php的会话控制,什么是会话控制,http等。什么是会话控制思想,http协议。 cookie 和 session...

  • PHP全栈学习笔记9

    php的会话控制,什么是会话控制,http等。什么是会话控制思想,http协议。 cookie 和 session...

  • 会话控制

    一、回话控制

  • 会话控制

    一、_COOKIE设置cookie:setcookie('name' , 'zhangsan' , time()+...

  • 会话控制

    会话控制 session 一、函数 put Session::put('username','lala');//插...

  • 会话控制

    1、http协议(1.0、1.1)客户端与服务器通信方式建立连接=发送请求=响应请求=关闭连接解析多图和解析a连接...

  • 会话控制

    有 两个Http头部和Cookie有关:Set-Cookie和Cookie。 Set-Cookie由服务器发送,它...

  • 会话控制

    1.setcookie 2.header(string$string[,bool$replace= true[,i...

  • PHP 会话控制

    一 COOKIE的应用 1创建cookiesSetcookie()火狐-工具-页面信息-安全-查看cookie 2...

网友评论

      本文标题:会话控制

      本文链接:https://www.haomeiwen.com/subject/ctusidtx.html