web应用的认证与鉴权

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 认证解决的就是你是谁的问题,当登录一个web电商平台,当你很high的浏览商品的时候并不需要你的认证,但是当你准备下单的时候就需要你登录。要解决你是谁的问题?主要是你的账户有没有钱:)

什么是认证和授权?


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


当你登录之后,接下来最重要的是授权阶段,主要是区分你是不是VIP用户或admin用户。

970f0bb09ec4430b958524adccf5b0f0.png

什么是session?什么是cookie?


http是无状态的服务,当你首次登录web应用之后,http并不知道。如果服务器或者浏览器没记录下来的话,再次刷新页面可能就需要你重新登录。 这显然是不合理的。

因此session这个概念出现了。 这个是和用户紧密结合在一起的,主要解决服务器对用户的认证。

例如有的网站长时间不操作就需要重新登录,就是我们所说的session过期了,需要重新登录。


cookie是存在于用户浏览器本地。一般服务器将sessionid发送给浏览器将其保存在cookie中。

955eff06d349450fa8b6208e7e907ff4.png

什么是stick session?


当单体应用不足以支撑web应用的时候,一般会多实例部署前面加一个负载均衡器让多个服务实例提供服务。用户感觉不到自己在访问哪个服务器。

但是session同步是一个问题。

因为用户是通过负载均衡进来的,两次访问可能落在不同的svr上,如果第一次是在svr1上进行登录的,第二次是请求被分配到svr2上。如果再让用户重新登录那用户体验肯定糟糕透了。 用户莫名其妙间歇性登录。

因此出现了stick session即粘性session。 将session和用户访问的svr进行黏连。

5418a3c2099d475889c323d3f32a6e53.png

当用户量上来之后,stick session会对负载均衡和服务器造成很大的压力。因此一般大流量网站不使用这种方式保持session。

如何解决session同步的问题?


  • 第一种解决方案会话同步复制

也就是让这个会话数据在这个服务器之间进行同步复制。

可以解决问题但是它会引入复杂性,整个服务器集群之间,需要引入这个复杂的这个状态同步协议,整体性能和扩展性反而会变低。


  • 第二种无状态会话

不存在这个服务器上,而是存在客户端的这个浏览器里。

通过这个请求响应循环捎带来传递用户数据,这种方式确实可以做到这个服务器端和负载均衡器,都不需要存状态,比较容易扩展。

但是用户数据存在浏览器cookie当中是有泄露风险。

浏览器对这个cookie大小是有限制的,一般是4k


  • 第三种集中状态会话

将session集中存储redis中当,负载均衡器和这个服务器都可以水平扩展。提高了系统的可扩展性。

fb4f5c8c564d406ca515d0ad43cd0cc5.png

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
16天前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
30 3
|
21天前
|
移动开发 开发者 HTML5
构建响应式Web界面:Flexbox与Grid的实战应用
【10月更文挑战第22天】随着互联网的普及,用户对Web界面的要求越来越高,不仅需要美观,还要具备良好的响应性和兼容性。为了满足这些需求,Web开发者需要掌握一些高级的布局技术。Flexbox和Grid是现代Web布局的两大法宝,它们分别由CSS3和HTML5引入,能够帮助开发者构建出更加灵活和易于维护的响应式Web界面。本文将深入探讨Flexbox和Grid的实战应用,并通过具体实例来展示它们在构建响应式Web界面中的强大能力。
34 3
|
1月前
|
存储 安全 关系型数据库
后端技术:构建高效稳定的现代Web应用
【10月更文挑战第5天】后端技术:构建高效稳定的现代Web应用
53 1
|
4天前
|
缓存 安全 网络安全
HTTP/2与HTTPS在Web加速中的应用
HTTP/2与HTTPS在Web加速中的应用
|
6天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
17天前
|
前端开发 安全 应用服务中间件
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第26天】随着互联网的快速发展,前端性能调优成为开发者的重要任务。本文探讨了HTTP/2与HTTPS在前端性能优化中的应用,介绍了二进制分帧、多路复用和服务器推送等特性,并通过Nginx配置示例展示了如何启用HTTP/2和HTTPS,以提升Web应用的性能和安全性。
17 3
|
17天前
|
前端开发 JavaScript API
前端框架新探索:Svelte在构建高性能Web应用中的优势
【10月更文挑战第26天】近年来,前端技术飞速发展,Svelte凭借独特的编译时优化和简洁的API设计,成为构建高性能Web应用的优选。本文介绍Svelte的特点和优势,包括编译而非虚拟DOM、组件化开发、状态管理及响应式更新机制,并通过示例代码展示其使用方法。
33 2
|
17天前
|
测试技术 持续交付 PHP
PHP在Web开发中的应用与最佳实践###
【10月更文挑战第25天】 本文将深入探讨PHP在现代Web开发中的应用及其优势,并分享一些最佳实践来帮助开发者更有效地使用PHP。无论是初学者还是有经验的开发者,都能从中受益。 ###
38 1
|
18天前
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
48 2
|
21天前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
19 4

热门文章

最新文章