置顶「网络编程」Json Web Token(JWT)

### 一、身份认证 &emsp;常见的服务器端身份认证机制有两种,分别为:<br><p></p> #### 1.基于 session 的认证机制 &emsp;HTTP 是一种无状态的协议,这意味着若无登录态维持机制,则每次请求时都需要提交用户名与密码进行身份验证,而 session 机制就是用于在服务器端记录用户的登录状态。<br><p></p> &emsp;session 是一串在服务器生成………


置顶「Python」函数装饰器与闭包

&emsp; ### 一、函数装饰器 &emsp;装饰器是一个*可调用的对象*,其参数是被装饰的函数。装饰可能会处理被装饰的函数,或将其替换成另一个可调用对象,然后将其返回。 &emsp;*示例:* ```python @decorate def target(): print('running target()') # 相当于 def target(): print('running………


置顶「Django」基于类的视图

&emsp;对于视图层,除了可以用函数作为视图(`FBV`),还可以用类作为视图(`CBV`),即在类中定义方法对应http的各种请求方法。使用CBV可以使用类具有的一些特性,如继承、多态等。 - 所有类视图在映射到url时,都需调用视图的`as_view()`类方法。 ```python path("/index",views.MyView.as_view(),name="MyView") `………


「算法笔记」二叉树的宽度

#### 问题描述 &emsp;给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。<br><p></p> &emsp;每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入长度)之间的长度。<br><p></p> **示例 1**:<br> ``` 输入………


「Linux/UNIX 系统编程」信号机制:高级特性

### 一、传递、处置及处理相关的特殊信号 #### 1. SIGKILL 和 SIGSTOP &emsp;`SIGKILL`的默认行为是终止一个进程,`SIGSTOP`的默认行为是暂停一个进程。<br><p></p> &emsp;二者的默认行为均无法改变,试图通过`signal()`/`sigaction()`改变处置时总是返回错误,同时也无法将这两个信号阻塞。 > `SIGKIL………


「Linux/UNIX 系统编程」信号机制:信号处理器函数

<br> ### 一、信号处理器简介 &emsp;信号处理器指当信号传递给进程时,进程响应此信号而调用运行的一个函数,其基本形式为: ```c void handler(int sig){ /* code for handler */ } ``` &emsp;其中`sig`为引发调用的信号编号。<br><p></p> &emsp;当对应信号到达时,内核会派生出一个新的线程执行处理器函数,并暂停………


「Linux/UNIX 系统编程」信号机制:基本概念与使用

#### 一、信号的本质 &emsp;信号是 **软件中断**,其与硬件中断的相似之处在于打断了程序执行的正常流程。<br><p></p> &emsp;信号的系统数据结构是一个唯一的 **小整数**,由 1 开始顺序展开,`<signal.h>`以`SIGxxx`形式的符号名对这些整数做了定义。<br><p></p> &emsp;信号分为两大类: - 标准信号:内核向进程通知事件; - 实时信………


「算法笔记」二叉树的最近公共祖先

#### 问题描述 &emsp;给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。<br><p></p> **示例 1:**<br> <center><img src="/media/blog_image/微信截图_20201201012959814.png"></center> ``` 输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q =………


「计算机网络」HTTPS 原理及流程

&emsp;HTTP 报文都是通过明文传输的,这将带来敏感数据泄露的风险。为解决这个问题,Netscape 公司制定了 HTTPS 协议。<br><p></p> &emsp;HTTPS协议 = HTTP协议 + SSL/TLS协议: <center><img src="/media/blog_image/file_1608025528000.png" width="460px" style="m………


「算法笔记」二叉树的层序遍历

#### 问题介绍 &emsp;即获取二叉树每一层的节点。<br><p></p> &emsp;如给定二叉树:`[3,9,20,null,null,15,7]`<br> <img src="/media/blog_image/file_1615516974000.png" style="margin-left:50px;margin-top:10px;margin-bottom:12px"><br………


「算法笔记」实现 LRU 缓存机制

&emsp;LRU 是 Least Recently Used 的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。<br><p></p> &emsp;LRU 缓存机制常借助双向链表实现,以下通过一道 LeetCode 算法题介绍一种 LRU 机制的实现。 <br><br> #### 问题描述 &emsp;原题地址:https://leetcode-c………


「计算机网络」常见 HTTP 状态码

### 状态码分类 |状态码|类别|原因短语| |---|---|---| |1xx|信息型状态码|接受的请求正在处理| |2xx|成功状态码|请求正常处理完毕| |3xx|重定向|需要附加操作以完成请求| |4xx|客户端错误|客户端发送的请求出错,服务器无法处理| |5xx|服务器错误|服务器处理请求出错| <br><br> ### 常见状态码 #### 1. 2………


「计算机系统」虚拟内存

&emsp;为有效地管理内存,现代系统提供了对主存的抽象:虚拟内存。虚拟内存指在磁盘上虚拟出程序运行所需的内存。<br><p></p> &emsp;虚拟内存提供了三个重要能力: 1. 将主存看成磁盘的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,从而高效地使用主存; 2. 为每个进程提供一致的地址空间,从而简化内存管理; 3. 保证了每个进程的地址空间是独立的,不………


「算法笔记」0-1 背包问题

&emsp;经典的 0-1 背包问题描述如下: ``` 给你一个可装载重量为 W 的背包和 N 个物品,其中第 i 个物品的重量为 wt[i],价值为 val[i],现在让你用这个背包装物品,最多能装的价值是多少。 ``` &emsp;题目中的物品不可以分割,要么装进包里,要么不装。<br><p></p> &emsp;0-1 背包问题的状态有二:当前可选的物品`n`与当前的背包容量 `w`。(将………


「算法笔记」动态规划解题模板

#### 解题思路 &emsp;动态规划的一般形式是求最优解,其本质其实就是穷举法。但其目的在于缓存重叠子问题的解,用子问题的解来解决全局问题。<br><p></p> &emsp;动态规划的解题思路一般如下: - 找出问题的子结构 - 列出正确的状态转移方程,而写出正确的状态转移方程一般需要明确以下几点: 1. base case 2. 子问题的状态 3………


「数据库」组合索引

&emsp;当`WHERE`子句存在多个条件查询的时,若只对各条件字段使用单列索引,则检索时只会走某个字段上的索引(若有),因为 MySQL 只会选择它认为最有效率的单列索引,并建立中间结果集,再在中间结果集上进行后续字段的筛选,即做一个全表扫描。而在中间结果集上是无法利用索引进行检索的。<br><p></p> &emsp;因此,为了提高条件组合时的检索,可以使用组合索引。 <br> ………


「数据库」MySQL 索引与索引优化

&emsp;索引可以提高数据库的检索速度,分为 **单列索引** 与 **组合索引**。<br><p></p> &emsp;在创建索引时,需要确保该索引会频繁应用在 SQL 查询语句的条件中(一般用在`WHERE`子句中)。<br><p></p> &emsp;由于索引是以索引文件的形式保存的,故建立索引会占用磁盘空间;此外,当对表进行更新操作时(`INSERT`、`UPDATE`、`DELE………


「C++」动态内存管理

&emsp;一般在程序中用到的内存分为三种:静态内存、栈内存与堆内存。<br><p></p> &emsp;分配在静态内存或栈内存中的对象由编译器自动创建与销毁。其中,静态内存用来保存: 1. 全局变量 2. `static`对象(全局与局部) 3. 类`static`数据成员 &emsp;栈对象又称自动变量,其仅在定义的程序块运行时存在,在控制流进入变量作用域时系统自动为其分配存储空间,并………


「计算机网络」网络层与 IP 协议

&emsp;网络层位于传输层与链路层之间,网络层主要的协议有: - 网际协议 IP - 地址解析协议 ARP:解决物理地址跟网络 IP 地址转换问题 - 网际控制报文协议 ICMP:错误消息通知 - 网际组管理协议 IGMP:Internet 组管理 <br> ### 一、IPv4 协议主要特点 &emsp; IP 是 TCP/IP 协议体系中网络层的协议。其主要特点如下: 1. **………


「读书笔记」《程序员的自我修养:链接、装载与库》

## [第一部分] 简介 ### 1. 简介 #### 北桥南桥 &emsp;计算机中,三个最重要的部件为:中央处理器 CPU、内存、I/O 控制芯片。<br><p></p> &emsp;**北桥芯片**是为了协调 CPU、内存和高速图形设备间的频率,以便它们之间可以高速地交换数据。<br><p></p> &emsp;于此同时,由于北桥芯片的速度非常高,所有相对低速的设备若直接连接到北桥,北桥同………