web应用的认证与鉴权

news2025/1/12 6:12:00

文章目录

    • 什么是认证和授权?
    • 什么是session?什么是cookie?
    • 什么是stick session?
    • 如何解决session同步的问题?

什么是认证和授权?

认证解决的就是你是谁的问题,当登录一个web电商平台,当你很high的浏览商品的时候并不需要你的认证,但是当你准备下单的时候就需要你登录。要解决你是谁的问题?主要是你的账户有没有钱:)

当你登录之后,接下来最重要的是授权阶段,主要是区分你是不是VIP用户或admin用户。在这里插入图片描述

什么是session?什么是cookie?

http是无状态的服务,当你首次登录web应用之后,http并不知道。如果服务器或者浏览器没记录下来的话,再次刷新页面可能就需要你重新登录。 这显然是不合理的。
因此session这个概念出现了。 这个是和用户紧密结合在一起的,主要解决服务器对用户的认证。
例如有的网站长时间不操作就需要重新登录,就是我们所说的session过期了,需要重新登录。

cookie是存在于用户浏览器本地。一般服务器将sessionid发送给浏览器将其保存在cookie中。
在这里插入图片描述

什么是stick session?

当单体应用不足以支撑web应用的时候,一般会多实例部署前面加一个负载均衡器让多个服务实例提供服务。用户感觉不到自己在访问哪个服务器。
但是session同步是一个问题。
因为用户是通过负载均衡进来的,两次访问可能落在不同的svr上,如果第一次是在svr1上进行登录的,第二次是请求被分配到svr2上。如果再让用户重新登录那用户体验肯定糟糕透了。 用户莫名其妙间歇性登录。
因此出现了stick session即粘性session。 将session和用户访问的svr进行黏连。
在这里插入图片描述
当用户量上来之后,stick session会对负载均衡和服务器造成很大的压力。因此一般大流量网站不使用这种方式保持session。

如何解决session同步的问题?

  • 第一种解决方案会话同步复制
    也就是让这个会话数据在这个服务器之间进行同步复制。
    可以解决问题但是它会引入复杂性,整个服务器集群之间,需要引入这个复杂的这个状态同步协议,整体性能和扩展性反而会变低。

  • 第二种无状态会话
    不存在这个服务器上,而是存在客户端的这个浏览器里。
    通过这个请求响应循环捎带来传递用户数据,这种方式确实可以做到这个服务器端和负载均衡器,都不需要存状态,比较容易扩展。
    但是用户数据存在浏览器cookie当中是有泄露风险。
    浏览器对这个cookie大小是有限制的,一般是4k

  • 第三种集中状态会话
    将session集中存储redis中当,负载均衡器和这个服务器都可以水平扩展。提高了系统的可扩展性。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/118080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

配置压力测试环境

压力测试环境跟测试环境基本一样,不过部署到新的服务器 首先选一台服务器部署eureka,在把项目发布到eureka上 选择另外一台服务器部署nginx,实现前后端分离 (eureka路径如下:/opt/cbd/cloud/cbd-cloud-eureka/&#x…

TensorRt(4)yolov3加载测试

本文介绍使用darknet项目原始的预训练模型yolov3.weights,经过tensorrt脚本转换为onnx模型,进一步编译优化编译位engine,最后使用TensorRt运行时进行推理。推理时的结果后处理使用c实现,也给出了问题的说明。 文章目录1、darkent模…

C语言奇奇怪怪表达式‘abcd‘,及操作符详解

前言 回顾操作符和一些表达式方面的知识。 表达式及操作符前言算术操作符 &#xff1a; - * /位操作符>>、<<>>算数右移逻辑右移<<小结&、|、~&&#xff1a;有0则为0&#xff0c;两个1才为1|&#xff1a; 有1则为1&#xff0c;两个0才为0~&am…

透彻感知 数字孪生智慧隧道Web3D可视化监控系统

今天为大家分享一个采用 数维图 的 Sovit3D 构建轻量化 3D 可视化场景的案例——智慧隧道三维可视化系统。多维度呈现隧道内外场景&#xff0c;实现隧道内态势的实时监测&#xff0c;运维设备、控制系统和信息系统的互联互通。加强隧道内设备的全状态感知力与控制力&#xff0c…

AI技术赋能数智化转型,激发企业变革创新

人工智能的概念第一次被提出&#xff0c;是在20世纪50年代&#xff0c;距今已七十余年的时间。随着深度神经网络技术的逐渐成熟和计算能力的大幅提升&#xff0c;AI技术实现了飞跃式地发展&#xff0c;已经在工业、制造、能源、金融等各行各业得到了广泛有效地应用实践&#xf…

2022全年度饮料十大热门品牌销量榜单

随着国民经济的发展及居民收入水平不断提升&#xff0c;我国饮料行业规模处于不断增长的状态&#xff0c;饮料种类也日益繁多。同时&#xff0c;瓶装水、碳酸饮料、果汁饮料、茶饮料、功能饮料、含乳饮料等品类竞争激烈。但未来&#xff0c;我国饮料市场还有很大发展空间。 根据…

VS code配置C语言环境

下载编译器MinGW并解压&#xff08;任意路径&#xff09; 官网页面&#xff1a;MinGW-w64 下载页面&#xff1a;MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net MinGW添加至环境变量 D:\VS code\mingw64\bin 注&#xff1a;不能有中文&#xff1b…

SpringBoot整合Swagger3.0

目录 第一步&#xff1a;引入依赖 第二步&#xff1a;yml配置文件添加一下内容 第三步&#xff1a;添加SwaggerConfig配置类 第四步&#xff1a;启动类添加注解 第五步&#xff1a;Controller层类添加注解 第六步&#xff1a;实体类添加注解 第七步&#xff1a;启动项目访…

一篇文章教你如何用界面组件DevExpress WPF为应用配置文件选择!

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF的The…

【K3s】第8篇 详解 Kubernetes 组件

目录 1、Kubernetes 组件 2、控制平面组件&#xff08;Control Plane Components&#xff09; kube-apiserver etcd kube-scheduler kube-controller-manager cloud-controller-manager 3、Node 组件 kubelet kube-proxy 1、Kubernetes 组件 当你部署完 Kubernetes&am…

五、Java 12 新特性概述

五、Java 12 新特性概述 JDK12 在 2019 年 3 月 19 号正式发布&#xff0c;不同于JDK11&#xff0c;JDK12并不是一个LTS版本。作为一个中间版本&#xff0c;JDK12版本特性增加较少。 2017年宣布的加速发布节奏要求每六个月发布一次功能&#xff0c;每季度更新一次&#xff0c;每…

北鲲教程|基于 ABAQUS 的 CFRP 加固钢筋混凝土柱承载能力分析

随着我国经济实力快速发展与国家竞争力迅速提高&#xff0c;尤其是“一带一路”倡议与“海洋开发战略”实施&#xff0c;我国基础设施建设正逐步冲破东部地区的狭长地带&#xff0c;不断扩展至更加广阔的海洋与西部地区。混凝土结构作为土木工程中最常用的结构形式&#xff0c;…

女生戴蓝牙耳机什么颜色好看?适合女生的高颜值蓝牙耳机

蓝牙耳机作为当前畅销的数码单品&#xff0c;越来越多的品牌商推出新的蓝牙耳机&#xff0c;导致选购的时候不知道从何下手&#xff0c;蓝牙耳机最主要的是清晰音效&#xff0c;其次就是佩戴舒适度&#xff0c;但是近年来不少的人在外观上做出很大的改变&#xff0c;吸引人们的…

测试执行中工作效率相关指标

→ 执行效率&#xff1a;利用测试用例文档页数除于此次系统测试执行的时间总和(不包含用例文档编写时间)。补充指标方法是用例的个数除于此次系统测试的时间总和。用于获得工作中测试人员每小时执行测试的速度。 公式&#xff1a;∑测试用例文档页数(页) / ∑执行系统测试的有效…

Java多线程创建及典型实例(多线程买票)

Java多线程创建及典型实例&#xff08;多线程买票&#xff09;多线程1. Thread2. Runnable3. 线程通信4. Callable5. 线程池多线程卖票实例1. 继承Thread类&#xff08;存在线程安全问题&#xff09;2. 实现Runnable接口&#xff08;存在线程安全问题&#xff09;3. 对线程安全…

Mybatis源码(三)如何操作数据库

前言 接着environmentElement获取数据源信息后&#xff0c;同级执行代码的mappersElement。里面参杂了mybatis缓存。 Mybatis源码&#xff08;三&#xff09;如何操作数据库 MyBatis源码&#xff08;二&#xff09;如何执行sql Mybatis源码&#xff08;一&#xff09;获取数…

从咖啡馆到世界,共赴下一个十年 |写在 EMQX 开源十周年

十年前,在 2012 年 12 月 17 日,源于个人对 Erlang、MQTT 和开源的热爱,EMQX 诞生于一家咖啡馆并作为开源项目在 GitHub 上发布了初次提交。十年后的今天,EMQX 已成长为 Erlang 生态中最具影响力的物联网开源基础软件项目,作为全球最具扩展性的 MQTT 消息服务器在物联网、工业互…

【Java开发】Spring Cloud 02 :微服务项目介绍及开发环境

了解完 Spring Cloud 的发展背景以及各个组件库后&#xff0c;在敲代码前&#xff0c;本章节会聊一聊优惠券平台项目的整体功能和模块&#xff0c;以及每个功能点的技术选型和背后的依据&#xff0c;最后讲解下搭建项目所需的开发环境~ 目录 1 优惠券平台项目 1.1 项目介绍 …

[Linux安装软件详解系列]05 安装ElasticSearch和IK分词器

目录1、安装ElasticSearch2、安装IK分词器操作系统&#xff1a;Anolis OS 8.6 RHCK 64位、jdk1.8。ElasticSearch&#xff1a;v6.8.6下载文件&#xff1a; ElasticSearch v6.8.6&#xff1a; https://elastic.co/downloads/elasticsearch IK分词器 v6.8.6&#xff1a;https://g…

脚本-简单脚本

脚本执行顺序 默认脚本是无序执行&#xff0c;也就是哪个脚本先执行&#xff0c;哪个脚本后执行是未知的。 也可以手动指定执行顺序&#xff0c; 在如上图所示中&#xff0c;可以点击 加号 按钮&#xff0c;然后添加脚本的顺序&#xff0c;数值越大&#xff0c;执行顺序越靠后…