-
鉴权系统设计 - 基于 HttpOnlyCookie, Access Token, Refresh Token...
基于 HttpOnlyCookie + Access Token + Refresh Token 实现的鉴权和认证模型,在现代应用中很常见。本文将简略总结一下这个系统。 概念 HttpOnlyCookie 可以理解为一个特殊的容器,由于 JS 无法读到 Cookie,所以在这里面存东西能显著降低 XSS 窃取 token 的风险。 跨站脚本攻击(XSS) 全称 Cros... -
React Fiber
关于 React Fiber 的简单复习用学习笔记
-
使用 Github Action + Docker + Git 全自动部署项目到国内服务器,并优化部署速度到 10s
本文中,我会介绍我是怎么自动化部署我的 Nextjs 项目到多个服务器的,并分享一些部署技巧。成功以后,每次 git push 以后,项目会自动把生产构建部署到多个服务器,完全不需要你做任何额外的事情。 我的这个方法有如下几个显著优势: 完全适配国内网络环境。在各个方案中,这个方案绝对是部署速度最快的。有图有真相,在之后的自动化部署中,每次只花 10 秒左右 自动化部署,而且还是国内服务... -
🌟JS 面向对象的编程 & 原型链学习路径
this 语句和 new 关键字 原型对象与方法 prototype 和 proto 一样吗? 继承的手写实现 ES6 面向对象编程的语法糖 -
使用 nexttrace 代替 tracert, traceroute 以及 mtr 进行网络测试
nexttrace 是新一代的网络测试工具,社区正在积极维护 CLI 使用 官方文档如下: NTrace-core/README_zh_CN.md at main · nxtrace/NTrace-core 我们可以使用 Scoop 来安装 nexttrace。先安装 scoop: 12Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -S... -
关于跨运营商网络问题的思考
我在移动网络的情况下,访问我家电信宽带下托管的服务器出现了严重卡顿。这促使了我开展本文所示的系列研究。 如何得知自己现在网络环境的 isp cip.cc 简单测试 1curl cip.cc 获得类似于这样的信息: 12345678910C:\Users\26646>curl cip.ccIP : 183.131.35.123地址 : 中国 浙江 杭州运营商 ... -
RPC 协议个人学习总结
参考文献:操作系统中的远程过程调用 (RPC) - GeeksforGeeks RPC 协议,全称 Remote Procedure Call ,使程序能在网络中运行另一个计算机中的函数,就像在本地运行一样。RPC 隐藏了网络细节,因此开发人员可以像处理普通函数调用一样思考,而无需考虑复杂的网络操作。 其原理如图所示: RPC 工作原理 其中的 stub 是一种辅助型代码,个人认为它的关... -
回溯(backtrack)算法
时间复杂度 分析回溯问题的时间复杂度,有一个通用公式:路径长度×搜索树的叶子数 叶子节点的数量很多时候和排列数或者组合数有关,涉及阶乘。 排列数定义 Anm=n×(n−1)×⋯×(n−m+1)⏟m 个因子=n!(n−m)!A_n^m = \underbrace{n \times (n-1) \times \cdots \times (n-m+1)}_{m \text{ 个因子}} = ... -
三分钟出锅的极简小素菜:上海青
这盘菜整体流程甚至不超过 3 分钟,而且食材(上海青)几乎在任何菜场都能买到。 因为太简单,我几乎懒得写教程,不过还是有一点技巧在里面。 食材准备 任何地方都能买到的上海青(其实就是小青菜) 大蒜🧄 生抽 盐 糖(可选) 猪油(可选) 蚝油(可选) 步骤 把上海青洗干净,对半切或整颗炒都行,看心情。 热锅,小火,让锅底微微冒点白烟时下油。 丢两片拍碎的大蒜进去,让它散开... -
二叉树与递归 - 总结
心智模型 解决二叉树问题的一个通用心法 把两边节点都看成黑盒,而避免考虑太多细节陷进去。 我们仅在根节点、左黑盒、右黑盒三个东西里考虑问题。 递归函数其实是一个可复用的模式,想清楚设计一个模式对所有节点都适用。 最后考虑一下边界情况,如递归到最深处会怎样。 一些优化思路: 内部创建的函数,如果用到了外部变量,是否可以优化成纯函数? 是否有不需要搜索的地方,可以短路、剪枝?(这通常可...