web应用的认证与鉴权

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月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)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
2月前
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
|
2月前
|
前端开发 JavaScript 安全
前端性能调优:HTTP/2与HTTPS在Web加速中的应用
【10月更文挑战第27天】本文介绍了HTTP/2和HTTPS在前端性能调优中的应用。通过多路复用、服务器推送和头部压缩等特性,HTTP/2显著提升了Web性能。同时,HTTPS确保了数据传输的安全性。文章提供了示例代码,展示了如何使用Node.js创建一个HTTP/2服务器。
69 3
|
2月前
|
移动开发 开发者 HTML5
构建响应式Web界面:Flexbox与Grid的实战应用
【10月更文挑战第22天】随着互联网的普及,用户对Web界面的要求越来越高,不仅需要美观,还要具备良好的响应性和兼容性。为了满足这些需求,Web开发者需要掌握一些高级的布局技术。Flexbox和Grid是现代Web布局的两大法宝,它们分别由CSS3和HTML5引入,能够帮助开发者构建出更加灵活和易于维护的响应式Web界面。本文将深入探讨Flexbox和Grid的实战应用,并通过具体实例来展示它们在构建响应式Web界面中的强大能力。
45 3
|
2月前
|
前端开发 JavaScript
探索现代Web应用的微前端架构
【10月更文挑战第40天】在数字时代的浪潮中,Web应用的发展日益复杂多变。微前端架构作为一种新兴的设计理念,正逐步改变着传统的单一前端开发模式。本文将深入探讨微前端的核心概念、实现原理及其在实际项目中的应用,同时通过一个简单的代码示例,揭示如何将一个庞大的前端工程拆分成小而美的模块,进而提升项目的可维护性、可扩展性和开发效率。
|
15天前
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
|
23天前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
54 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
15天前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
2月前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
40 5
|
2月前
|
机器学习/深度学习 人工智能 JavaScript
JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景
本文探讨了JavaScript和TypeScript的未来发展趋势及其在Web开发中的应用前景。JavaScript将注重性能优化、跨平台开发、AI融合及WebAssembly整合;TypeScript则强调与框架整合、强类型检查、前端工程化及WebAssembly的深度结合。两者结合发展,特别是在Vue 3.0中完全采用TypeScript编写,预示着未来的Web开发将更加高效、可靠。
51 4
|
15天前
|
弹性计算 负载均衡 安全
云端问道-Web应用上云经典架构方案教学
本文介绍了企业业务上云的经典架构设计,涵盖用户业务现状及挑战、阿里云业务托管架构设计、方案选型配置及业务初期低门槛使用等内容。通过详细分析现有架构的问题,提出了高可用、安全、可扩展的解决方案,并提供了按量付费的低成本选项,帮助企业在业务初期顺利上云。