- 博客(13)
- 收藏
- 关注
原创 base64Captcha 生成验证码
验证码的生成与校验使用了 github.com/mojocn/base64Captcha官方文档:https://mojotv.cn/go/refactor-base64-captcha。
2022-08-18 16:30:56
1806
原创 HTTP、HTTPS、Session Cookie与JWT
HTTP各版本HTTP的特点:无状态:对事物处理没有“记忆”能力通信使用明文,请求和响应不会对通信方进行确认、无法保护数据的完整性基于请求和响应:基本的特性,由客户端发起请求,服务端响应简单快速、灵活缺点:通信使用明文,内容可能被窃听不验证通信方身份,可能遭遇伪装HTTP/1.0默认使用短连接;每次请求都需要建立TCP连接,即每次发送数据都需要三次握手、四次挥手,传输完成立即断开,开销大,效率低。可以设置 Connection:keep-alive,强制开启长连接错误状态响应
2022-04-24 16:02:51
2392
原创 浅谈三次握手、四次挥手
先了解下跟三次握手、四次挥手相关的TCP标志位SYN:同步序号,用来建立连接,SYN=1,ACK=0:连接请求报文段SYN=1,ACK=1:同意连接ACK:确认序号,ACK=1确认号有效,ACK=0确认号无效Sequence number(seq):顺序号,发送数据中第一个字节的序列号Acknowledge number(ack):确认号,响应前面seq,即seq+1三次握手第一次握手(发送连接请求报文SYN=1,ACK=0,seq=x),发送完毕后,客户端就进入S
2022-04-17 16:30:44
2312
原创 MySQL解决幻读详解
简单来说就是通过mvcc + next-key locks 防止幻读幻读是什么?当前事务读取了一个范围的记录,另一个事务在该范围内插入了新记录,当前事务再次读取该范围内的记录就会发现新插入的记录,这就是幻读以下MySQL的隔离界别都是可重复读(RR)mvcc与next-key分别在什么情况下起作用?在快照读的情况下,会通过mvcc来避免幻读在当前读的情况下,会通过next-key来避免幻读快照读与当前读快照读:所有普通的select语句都算快照读,它并不会给表中任何记录做加锁操作,其
2022-04-03 14:43:47
2716
1
原创 蓝桥杯 子串分值问题详解
题目地址:https://www.lanqiao.cn/problems/499/learning/根据题意,遇到重复的字母不计,只有不同的字母才能+1,最直接的想法就是暴力求解,因为都是小写字母,可以用一个数组来记录字母出现的次数。出现次数为1,就+1次数为2,说明出现了该字母两次,-1(相当于把第一步加的减掉)其它情况不进行操作(出现三次是0,四次还是0)结果就超时了。。。。。public class Main { public static void main(String[.
2022-03-21 16:58:48
519
1
原创 go中字节切片转换字符串乱码问题
如果需要将int类型变量的值加入到字节切片,byte()转换后一定要加字符’0’,不要傻傻的只用byte()转换!!!练习算法的时候,有时候需要将字节切片转换字符串如下代码:func main() { test1 := []byte{} test1 = append(test1, 't', 'e', 's', 't', byte(1)) fmt.Println(string(test1)) }本意是想将 ‘t’, ‘e’, ‘s’, ‘t’, ‘1’ 加入切片,然后转换成字符串,结
2022-03-12 15:41:18
1889
原创 go切片扩容遇到的一些问题
大家都知道切片的扩容规则:如果原Slice容量小于1024,则新Slice容量将扩大为原来的2倍如果原Slice容量大于等于1024,则新Slice容量将扩大为原来的1.25倍当我去实践的时候,发现有一些怪异如下:func main() { slice := make([]int, 1024) slice = append(slice, 1) fmt.Println(len(slice), cap(slice)) // 1025 1344}超过1024,不是扩容1.25吗,那cap
2022-03-12 11:07:01
1355
原创 数据结构 二叉树的遍历(go实现)
定义:二叉树是指树中节点的度不大于2(只能0、1、2)的有序树如下图就是一个二叉树:下面是关于二叉树遍历的代码实现。定义二叉树type TreeNode struct { Val int Left *TreeNode Right *TreeNode}遍历二叉树遍历二叉树有四种方式:先序遍历:先访问跟根节点,再访问左子树,最后访问右子树中序遍历:先访问跟左子树,再访问根节点,最后访问右子树后序遍历:先访问跟左子树,再访问右子树,最后访问根节点层次遍历:每一层从左到右访问每一个
2022-03-11 14:12:01
442
原创 数据结构 链表(go实现)
单链表// 定义结点type Node struct { val int next *Node}// 定义链表type MyLinkedList struct { dummy *Node}// 初始化链表func Constructor() MyLinkedList { return MyLinkedList{ &Node{}, }}// 获取链表中第 index(从0开始)个节点的值。如果索引无效,则返回-1func (this *MyLinked
2022-03-07 19:12:34
527
原创 回溯算法(组合问题)总结
组合问题:n个数里按一定规则找出k个数的集合(大多都是这样问)比如leetcode组合这道题题目要求:给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例1:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]示例2:输入:n = 1, k = 1输出:[[1]]以实例1为例,这道题就是在 1,2,3,4(...
2022-02-23 11:01:29
331
1
原创 MySQL下载,并用eclipse连接
目录一.安装MySQL1.下载2.配置二.eclipse连接mysql1.下载JDBC2.连接一.安装MySQL1.下载先来到官网 https://www.mysql.com/ 接着按下图操作就可以完成下载2.配置win+R 输入 cmd cirl+shift 点击回车 打开windows命令处理程序输入 cd /d mysql/bin目录的地址输入 mysql --in...
2021-08-24 10:46:22
515
原创 vue组件通信
目录一.父子通信(props, $emit)(1)父传子:子组件实例上用v-bind绑定父组件数据,在组件上用props接收(2) 子传父:子组件通过$emit传参数,父组件v-on绑定事件二.$attrs 和 $listerens(1)祖先传给后代($attrs)(2)后代传给祖先($listerens)三.provide 和inject四.&refs ,$parent ,$children(1)$refs(2) $children(3) $paren..
2021-08-19 20:38:18
179
原创 vue cli安装以及使用
在下载使用vue cli之前,需要下载node.jshttps://www.runoob.com/nodejs/nodejs-install-setup.html(菜鸟教程很详细)下载好之后就可以下载 vue cli了windows+R 输入 cmd打开之后输入 npm install vue-cli -g就开始安装了,如果速度太慢的话 重新输入 npm install -g cnpm --registry=https://registry.npm.t...
2021-07-26 21:29:09
123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人