• 【仿牛客网笔记】Spring Boot实践,开发社区登录模块-会话管理


    请添加图片描述
    在这里插入图片描述
    请添加图片描述
    浏览器首先创建一个cookie对象,并将cookie对象在响应时候发给浏览器,同时可以携带一些数据。浏览器就会保存数据在本地并且会自觉的在响应头中带回数据。请添加图片描述
    Cookie相关的示例
    首先生成Cookie对象,每组Cookie对象只能存一组数据,即一个key和value。 然后设置Cookie的生效的范围,以防资源的浪费。设置Cookie的生效时间会,会把Cookie存在硬盘里,至到生效时间结束。
    请添加图片描述
    请添加图片描述
    获取Cookie
    请添加图片描述
    cookie能够弥补HTTP无状态的情况,使用的时也很简单,Cookie不可以存敏感的信息。Cookie每次访问的时候会对性能产生影响。
    演示Session
    第一次请求时,服务器会产生一个session,存了当前浏览器的相关数据,ID、密码等。响应的时候服务器自动的向浏览器发送了一份Cookie,数据是有Cookie携带,Cookie中携带了sesion的ID,浏览器就会在本地存Cookie对象在本地,因此浏览器中Cookie就有了session的id。当浏览器下次请求的时候Cookie中存的就是session的id。服务器得到session的id之后就可以找到与浏览器相对应的数据。总之,session就是依赖于cookie。
    请添加图片描述
    服务器端创建session不用手动创建,与cookie不一样。服务器或者Spring MVC会帮我们自动创建。session的创建和request,Model创建一样,只要声明就会注入。Cookie只能存字符串,因为需要来回传,需要大量的数据,影响性能,需要到客户端,客户端只能识别字符串。而session因为存在于服务器所以可以存任何类型的数据,也可以存很多。
    请添加图片描述
    请添加图片描述
    session的get方法。
    请添加图片描述
    请添加图片描述session逐渐用的越来越少,尤其是分布式下。
    分布式下session用的越来越少的原因:
    服务器往往是分布式部署,即多台部署,同时想浏览器提供部署。
    为了负载均衡经常在浏览器和服务器之间加一个代理服务器nginx。浏览器访问的就是nginx,当访问的时候会负载均衡分发给每个服务器。
    1、黏性session,假设浏览器的ip是101的话,分给服务器1去处理,即只要是同一个IP就分给同一个ip处理。这样的方式就很难保证服务器之间负载是均衡的。
    2.同步session,当每一个服务创建session之后会把服务器同步给其他的服务器。这样服务器和服务器就会产生关联耦合,不是那么的独立。
    3.共享session,单独搞一台服务器,用来存session,需要处理session的时候会统一放到单独的服务器中处理。其余的向单独的服务器获取。这台单独服务器挂了的时候其余服务器无法向单独服务器获取。
    请添加图片描述
    目前主流的是浏览器数据能存到Cookie就存到Cookie,敏感数据就存到数据库中。

    请添加图片描述
    我们可以不把会话的内容放到关系型数据库中,也可以放到redis中。
    对于一些数据适合存到数据库就存到数据库,不适合的就存到redis中。
    请添加图片描述

  • 相关阅读:
    ReactNative进阶(五):React Native与原生通信
    Java (JVM) 内存模型
    用DIV+CSS技术设计的餐饮美食网页与实现制作(web前端网页制作课作业)HTML+CSS+JavaScript美食汇响应式美食菜谱网站模板
    jquery-leonaScroll-1.1-自定义滚动条插件
    Linux进程控制
    WAF绕过-漏洞发现之代理池指纹探针 47
    NetCore开发的分布式文件上传系统
    TypeScript中报错:元素隐式具有 “any“ 类型,因为类型为 “XXX“ 的表达式不能用于索引类型。
    Pytorch实用教程:pytorch中可以做哪些优化,以提高模型的识别精度
    高德地图用法
  • 原文地址:https://blog.csdn.net/xue_hua_c/article/details/127557631