首页 > 其他分享 >http会话技术

http会话技术

时间:2024-02-06 17:22:38浏览次数:19  
标签:http 登录 技术 会话 token session cookie 服务器 浏览器

http中cookie、session、token是啥子?

http是无状态的,每个请求间相互独立

也就是说我用第一个数据包进行登录,第二个数据包去请求服务器时,服务器无法确认我们是否已经登录。这时就需要一些新的技术来解决这个问题。

下面就以登录为例子来讲这个问题

cookie+session方案

既然我们需要让服务站知道我们已经登录了,那么可以让服务器保存我们的登录信息

session ID 1024100:A用户-已登录-登录时间12:00

session ID 1024101:B用户-已登录-登录时间10:00

然后让浏览器拿着ID作为身份标识符去请求服务器,服务器收到后拿出来对应ID的信息作为登录信息。这样就解决了这个问题,在每次请求中服务器通过浏览器提供的ID值去判断用户是否已经登录。

为了让浏览器在每次请求自动发送某个字段给服务器,我们使用了cookie这项技术

服务器把sessionID放进浏览器的cookie里面,这样每次请求的时候,浏览器就会自动发送cookie来验证身份

token方案

为什么需要token方案原因有2

  1. 提高性能(不使用session)

  2. 防御csrf(不使用cookie)

性能问题

前面说到,session的方案会将登录信息存放在服务器,这个存放是存放在内存中的,如果存放在数据库那么效率就太慢了。如果使用了多台服务器做负载均衡,A服务器又不能跑去B服务器的内存里面查这个session的内容,这样就会出现问题。

要是能把登录信息存放在浏览器(且保证该信息无法被篡改),那么服务器就只需要验证这些信息,而不是存放这些登录信息。这里就用到了签名技术。

服务器在用户登录成功后将登录信息进行签名,并返回给浏览器(称为token),浏览器下次请求的时候把token还回来,服务器只需要用私钥验证签名是否正确,如果正确那么信任此用户的登录信息。(虽然单台服务器上慢了,但是能省内存,而且可以做负载均衡)

CSRF

用户在访问一个网站时,会将cookie自动发送出去,此时容易出现CSRF问题。

如果我们把这个认证的信息token放在cookie中,一样会出现问题(一样会被自动发送出去)

所以我们干脆不能采用cookie的方案存放token,而是另外起一个字段

token的问题

我们知道token就是把信息签名发出去,那么这里又会出现问题(比如强制下线)

强制下线很好理解,token已经签名发出去了,这时候哪怕用户修改密码,token也是有效的。(session的话直接删除即可)或者说一个用户有违规操作,要踢他下线,单纯用token也是困难的。

那么可以使用token+redis的方案,redis存放一部分信息(比如用户是否有违规操作)

标签:http,登录,技术,会话,token,session,cookie,服务器,浏览器
From: https://www.cnblogs.com/Aixve/p/18010069

相关文章

  • 暴雪列车晚点744分钟!要自行铲冰?物联网技术助力春运高效运营
    近日安徽省气象台发布的暴雪蓝色预警,多地迎来多轮降雪,受此影响,合肥南站D4832列车晚点长达744分钟!G7721列车晚点达173分钟!截至2月4日9时,全省已有95个高速公路收费站关闭。高铁停运、高速公路封闭,成千上万的旅客滞留,车辆无法前行,这不仅是对人们耐心和意志的考验,更是对现代科技应急管......
  • nodejs学习计划--(三)http协议和IP介绍
    一、HTPP协议1、概念HTTP(hypertexttransportprotocol)协议;中文叫超文本传输协议是一种基于TCP/IP的应用层通信协议这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。协议中主要规定了两个方面的内容客户端:用来向服务器发送数据,可以被称之为请求报文服务端......
  • 透视钢织网生产:3D可视化技术的智慧之旅
    随着科技的飞速发展,传统的制造业正迎来一场前所未有的变革。 一、透视未来:可视化技术的魔力想象一下,你能够站在一个全透明的工厂里,看着每一道工序、每一个机械臂、甚至是每一根钢丝是如何精准地编织成一张坚固的钢织网的。这就是山海鲸可视化搭建的钢织网工厂3D模型带给我们的......
  • 「云原生可观测团队」获选「InfoQ 年度技术内容贡献奖」
    随着云原生、人工智能逐渐成为各行各业的创新生产力工具。可以预见,我们即将进入全新的智能化时代。随着数据成为新型生产要素,云和AI正走向深度融合。云原生通过提供大规模多元算力的高效供给,可观测成为业务创新的核心基础设施,加速智能化创新。这一过程离不开开发者、企业、厂商......
  • 技术领先
    飞天是阿里云自主研发、国内唯一自研的云计算操作系统,编排调度百万级服务器,单集群调度规模超十万台,具备EB级数据存储能力,并通过CIPU率先实现虚拟化“0”损耗,提供业界领先的计算性能,既满足客户严苛的业务要求,又提供高性价比服务。......
  • HTTP协议详解(2万字长文详解)
    HTTP协议详解什么是http/https协议应用层协议一般都是由我们程序员自己来定义!但是已经有人针对使用场景,早就已经写好了场景的协议软件,供我们使用这就是http/https这两个就是最常见的协议!——这两个协议都是工作在应用层认识URL平时我们俗称的"网址"其实就是说的URL==......
  • 网络流技术
    最大流/最小费用最大流这里不再讨论,使用Dinic即可。板子是可以感性理解然后背下来的。无源汇上下界可行流随便来一张网络,边上的流量有上下界,求一种所有点都满足流量平衡和上下界限制的方案。首先有一个想法是把上下界转换成只有上界,那么为了清除下界的障碍,我们就先把所有边......
  • 亿级流量高并发春晚互动前端技术揭秘
    前言2022年1月,京东成为央视总台2022年春节联欢晚会独家互动合作伙伴,双方在红包互动、电商等方面展开全方位深度合作。在除夕当天产生691亿次互动,送出15亿元红包好物。如何在这种大规模、高并发的场景下,确保系统的稳定性和性能,为用户提供稳定流畅的互动体验,成为了我们亟待解决的......
  • 软件测试之微软技术
    Test作为DevOps整体系统的重要部分:.NETDevOps、测试和部署文档|MicrosoftLearnUnittestingC#withMSTestand.NET-.NET|MicrosoftLearnMSTest运行器runsettings-.NET|MicrosoftLearnMSTest是微软推出的一款开源C#单元测试工具,该工具集成于Visual......
  • 招募操作系统技术合伙人
    LAXCUS分布式操作系统是一种面向算力的新型操作系统,AI大潮下,算力即生产力,LAXCUS服务以AI为主的大规模计算领域,英伟达已经把住了硬件算力入口,我们瞄准了软件算力。现招募以下岗位的技术大牛:1.技术合伙人:精通网络、Linux全栈,c、c++,参与团队的技术和管理工作,定制产品路线,待遇:薪酬+股......