身份认证和跨域的知识
关于身份认证和跨域
前言:此文章出发点是写给一些做过用户中心项目的球友们,如果你在做用户中心的过程中,对 session 和跨域还是不够了解,可以参考本文学习。当然,没做过用户中心的人也能在本文学到 身份认证和跨域技术的知识
也看可以到我的 GitHub 上看.
或者 掘金
或者 https://t.zsxq.com/0dksdw6Be 里面有 pdf
题外话,星球的编辑器太烂,不想改排版了,建议访问上面的链接。
三个简单易懂的视频讲解
- 包含原理讲解、命令行请求和服务器响应的实践
- 包含原理讲解、命令行请求和服务器响应的实践、分析 jwt token 的组成
- 从跨域的产生,到原理讲解,再到跨域的解决
- 解决方式
- 在后端请求响应头解决
- 增加 Access-Control-Allow-Origin 头
- 通过代理服务器解决
jwt
!Img
注意
- 签名算法和数据没有加密,可被解码出来
- 关于安全性:签名由签名算法和数据再加上加密产生的,用来防止别人用其它数据(签名算法由数据)比如来获得管理员权限。
小结:session 和 jwt 有什么区别和共同点
!!Img
- 由存储位置引出扩展性和安全性,以及适用场景
!Img
- 都用于身份验证,这类技术也会有以下共性。加密机制、过期时间、防止跨站点伪造请求的攻击
拓展:关于 CSRF 攻击(Cross-Site Request Forgery)
关于 CSRF 完全基于 gpt,如果有理解错误的地方,希望大家一起交流讨论
- gpt 可能会说一些正确的废话,但删了感觉理解又不完整,大家可以给点建议
引入,同源策略是用来防止 CSRF 攻击的!Img
防止 CSRF 攻击的方式 :通过在 HTTP 请求头中添加 CSRF Token 来防止 CSRF 攻击!Img
CSRF 攻击的具体描述和作用:!Img
CSRF 攻击的具体形式是利用会话状态(比如 Session ID 和 jwt token) !Img
CSRF token 的特殊性,和 JWT Token 和 Session ID 的区别!Img
CSRF Token 自动刷新维持登录
!Img
尾声
gpt 是一个很好的老师,你用它来学习,可以完美满足独立思考提问,快速获取准确回答(相对于搜索引擎)的效果。
后续的更新,应该是加入我在学习 session 和跨域的笔记,等有空我就整理进来
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
作者分享
标题:练习听力的学习观念,认识答案反馈
今天练听力时,联想到以前的学过的学习方法概念——答案反馈,然后想到了一个比较简练的表达:
听力训练也是很注重答案的反馈,但这个是基于经过盲听练习的前提,而大部分人看视频都直接看字幕,相当于不做题直接看答案,所以听力练习效果很差。
盲听后再看字幕,看了字幕再听一遍音频。基于语音信息和答案(字幕信息)这两个信息,你对于这个发音的掌握程度就上升了。
所以盲听时听不懂也不用难过,你对了答案后听力水平肯定上升了,每次积累一点,随时间推移能听到的会越来越多,这也是我最近练习听力的感觉
关于答案反馈这个概念可以参考 【【寻径 08】什么才算有效训练,为何一看就“会”,却一做就“废”?】 https://www.bilibili.com/video/BV1KM4y1P7U3/?share_source=copy_web&vd_source=cb804c92cb9aca2966f586712caac3aa
然后这是我关于这套视频的[笔记]https://www.bilibili.com/opus/832102406970933288
我最近一个月也在写博客,现在主要更新冥想、运动、英语学习日记,偶尔会更新点相关的文章,有兴趣的可以来逛一下
https://flow-sandyu.github.io/posts/总结和复盘/diary of 2024-6#_2024-06-02
另外,我最近3个月用的app是听典app,前几天把 Flipped 这部电影练完。如果练听力,可以尝试使用一下,前期会比较不适应,可能会感觉会比较难。
学习总结 经验
8
# 自己对知识的串讲
以下是自己观看完断墨寻径后,用自己的话和实例来过一遍下面这张图的知识点
断墨寻径的链接
[学习误区自查课程介绍 - 断墨寻径 - 渐构 Modevol]
https://www.modevol.com/episode/ckx8eb99w000501l2ewyt2kto
[18 个知识点应用串讲 - 断墨寻径 - 渐构 Modevol]
https://www.modevol.com/episode/ckx8j6a4q001u01l2fkt7hjx2
建议观看 pdf 或 md 文档,那样排版更好
## 明确目标
第一步分辨是八股知识点是一个需要重现的内容,还是一个需要泛化的内容
需要重现的知识,也被定义为信息,比如@Controller @Component 这些名字是要记住的。即使你明白底层怎么实现(有了泛化能力),你也要记住这几个注解的名字。
- 如果你能明确说出名字,那样交流的效率会很高,别人也会认为你专业。 比如事务四个特性你明确的说出英文单词
- 如果你面试答不出来名字那肯定很降分
- 重现知识的技巧和方法
- 重复,增加频率。
- 多次使用概念,比如面试时经常被问,自己在学其它知识时经常用到这个信息
而需要泛化的知识就有很多门道了
## 找学习材料
首先你得找到合适的材料去学习
- 材料的是一个有效实例,需要有问题,解答过程和答案。
- 比如有些面经里只有问题,没有解答过程和答案,这就不算一个很好的实例,你需要自己去**补充**解答过程和答案,而且你还得**验证**自己的思考过程和答案是否正确
- 材料的**前置知识**你要搞懂。
- 比如 “ArrayList 是由数组来实现数据存储的” 这一段材料,你得先明白数组是什么,才能去开始学这句话,才能看懂 ArrayList 一些简单的源码
- 所以在你学习时,遇到新的概念和知识,要搞明白自己哪里不懂。如果你数组都不懂,那么你看 ArrayList 肯定就是看天书了,不可能看懂的
## 开始学习
搞好这两个,就可以开始用有效训练和精细加工开始学习了
- 有效训练就是经过实际执行和答案反馈两个过程
- 实际执行可以是你自己把知识点对应的代码阅读并过一遍,形成自己的理解,也可以是自己重做一下例题,反正就是动手做
- 实际执行时,注意不要立刻对答案。
- 比如做算法题时,尝试自己思考,并把自己想不通的地方记下来
- 答案反馈就是把自己之前的理解和看着答案,把自己的理解和答案做对比
- 精细加工就是用举例和建立知识间联系来强化对知识的记忆
## 验证所学
在学习完知识后,还有验证知识,检验自己是否掌握了知识
- 比如自己构建的知识是否能解决新问题(是否有可泛化性),是否存在归纳不足、以偏概全的情况,自己是否不明白知识的限定条件
验证的好方法
- 费曼学习法,包含举例和换个说法两个核心概念
- 验证的另一种表述是新例预测和表述转换
- 用编程领域的后端学习来举例子
- 新例预测:
- 可以在学完一个编程框架后,比如 spring,自己动手写一个管理系统,检验看自己是否理解并熟练运用各种 api 来写代码,看自己的代码是否能完成需求
- 比如看完一个韩顺平一个章节的视频后,做课后题
- 表述转换:并在写完管理系统后,写个文档,把自己学到的知识,实践过程以自己的话复述一遍
- 在写文档时,你会尽可能让自己的语言通俗易懂,这样也推动你对知识有更深的理解
另外 经过验证的知识也更难遗忘
## 解决验证过程中的各种问题
验证后出现的各种情况,应如何解决?
- 验证后如果发现对知识的限定条件不明,就去学习新的限定条件是什么,怎么用
- 如果发现归纳不足,这时你已经知道自己哪里归纳不足,自己哪些需求做不了,那就找一个可以解决当下需求和以前的需求的通用方法
- 如果发现以偏概全
- 那就找更多的有效材料来扩充认知
- 或者把自己构建的知识总结为更简单的表述,也就是 keep it simple 法则,简单的表述通常会更通用,能解决更多的情况
## 学完注意睡眠
知识在大脑中一种由神经细胞一起形成的结构,这种结构的调整发生在睡眠里
## 额外补充
### 学习瓶颈
### 对遗忘和记住的正确认识
13
#闲聊# #生活#
分享一下日常感悟,闲聊一下。 标题:关于睡眠的新观念和调作息方法
我将有关睡眠和学习的精神状态分为三类:
一,非常精神,工作效率高,不需要睡眠。
二,介于困和不困之间,工作效率低。因此,我很容易逃避去娱乐,因为娱乐不需要动脑子,但结果是容易娱乐过头。比如看小说,很困了但就想看下去,这种不顾身体困的情况继续看小说就是一种娱乐过头的现象。
娱乐过头后果就容易耗费大量时间,一是娱乐时间多了,学习时间就变少,二是作息乱了,影响精神状态,进而影响学习时间。
三,很困了,倒头能睡。这种状态会出现在熬夜学习赶 ddl,以及上面娱乐过头的情况。
为了调整作息,我有以下方法:
第一种。在第二种介于困和不困之间的状态,选择限制娱乐时间,或者直接在第二种状态下学习。
这种情况下学习,学习效率自然会低,但即使效率低下,那也是学习,而且这种状态下学习,很难会出现学习过头的现象(学习过头称为很困了,但还在学习)。例子就是当你临睡前睡意不足,拿了本微积分来看,你大概率是不会越看越精神,相反可能会积累睡意
第二种调节方法基于一种灌南,就是让自己在第三种很困状态硬撑到理想睡眠时间。比如,我晚上 7 点就很困了,但我硬撑(使用过度学习或过度娱乐的方式),撑到 10 点才睡。
除此之外的建议:如果真的不困(比如第二种状态),那就不要躺下,我更建议去学习,然后参考第二种方法,学习到很困,如果能撑到 10 点,那就最好了。
最后,为什么选择固定时间睡觉而不是固定时间起床?那是因为对我来说熬夜比早起更简单,但有时候是不得不早起的。
11
背八股后,有突发奇想 #求职# 经验 #闲聊# Java 学习总结
苦涩背八股后的休息时间,看到一篇面经分享的面试方法,进而有了突发奇想:我要改进准备面试的方式 和 我思考了为什么会有这种情况:为什么在代码能力弱的情况下 靠八股知识的理解过面试
关于准备面试时新技术的学习方法
- 在代码实现上少花时间,大部分时间花在思考上(把八股理解到位,能答出来)。
- 然后带着有代码的笔记(很多视频教程都有笔记)去学这些技术,cv 代码过一遍技术,然后着重脑子理解代码实现 和 技术实现 和 业务的逻辑
- 灵感来源下图 (原文地址 https://javaguide.cn/high-quality-technical-articles/interview/summary-of-spring-recruitment.html#面试准备)
- 现在新技术的学习其实是和背八股同步的,所以是可以学的
- 另外我能这么同步,是因为我牺牲了敲代码的时间
### 分析为什么在代码能力弱的情况下 靠八股知识的理解过面试
- 我很早就知道有这种情况。比如我看过敖丙大佬在一个星球的评论
- 第二张图
- 我以前不这么做的理由,是感觉背八股不靠谱,都靠背进公司,那进去动手能力不足怎么办。
- 还以为这么背经不住面试官问
- 所以想着多花时间写代码
- 现在才意识到(经过两场面试后),**国内的面试就是背八股**
- 而且我背的时候也是有理解的背的,不是说死记硬背,没有能力提升,背完后多少是懂点道理的,只是代码实现很弱。**但代码能力恰恰是面试很难考察的**,且国内中小厂没算法,那就更面试对代码能力的考察就更弱了。所以完全可以**靠知识理解过面试**,拿到工作后再多敲代码,打磨代码能力。
- 相对,有 GitHub 开源项目的人,代码能力有社区和时间的验证。那就是很大的有时
- 但是还是有考察代码能力的情况,如果简单的代码写不出来,那么会很扣分
- 比如手撕 sql、死锁这种,有可能有简单算法
- 其实这样面试也不是不行,能筛出一部分努力准备面试的人,就是企业把面试成本转嫁给打工人,然打工人卷出几个做题家,然后招这些卷王做题家
但我还是一个未工作的应届生,可能上面的有多不合现实的内容。请鱼友们知道的分享一下你的看法
10
又开始打卡咯 :) ,我迭代了新的工作流。里面的attendance就是打卡环节。
以后有空可以分享一下我这个工作流,基本围绕写markdown 、倒计时、和一些时间管理的方法和观念
#闲聊# #打卡#
3
