- 博客(187)
- 收藏
- 关注
原创 php 斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖,这个数列从第三项开始,每一项都等于前两项之和。
2023-02-27 18:19:47
846
原创 golang context上下文
用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的token、请求的截止时间。当一个请求被取消或超时时,所有用来处理该请求的 goroutine 都应该迅速退出,然后系统才能释放这些 goroutine 占用的资源。当截止日过期时或调用返回的cancel函数时或当父上下文的Done通道关闭时,返回上下文的Done通道将被关闭,以最先发生的情况为准。当调用返回的cancel函数或当关闭父上下文的Done通道时,将关闭返回的上下文的Done通道。
2023-02-12 11:07:00
484
原创 golang 通道类型
Go 语言中的通道(channel)是一种特殊的类型。通道像一个传送带或者队列,总是遵循先入先出(First In First Out)的规则,保证收发数据的顺序。每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。如果说goroutine是Go程序并发的执行体,channel就是它们之间的连接。channel是可以让一个goroutine发送特定值到另一个goroutine的通信机制。
2023-02-11 12:46:58
925
原创 CSRF 伪造跨域请求
伪造跨域请求(英语:Cross-site request forgery),通常缩写为CSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
2023-01-30 00:12:13
586
1
原创 php xss攻击
xss攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括php、VBScript、ActiveX、 Flash 或者甚至是普通的HTML。
2023-01-29 19:30:56
1071
原创 php sql注入
在应用程序中,为了和用户交互,允许用户提交输入数据,假如应用程序并没有对用户输入数据进行处理,攻击者可以输入一些跟sql语句相关的字符串(一般带有特殊字符)从而让应用程序执行危险的 SQL 操作,导致泄漏机密数据(比如用户信息)或直接修改删除线上的数据。
2023-01-16 13:05:21
2408
原创 linux 进程管理
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。
2023-01-10 22:26:03
374
原创 redis 持久化
redis是一个内存数据库,一旦断电或服务器进程退出,内存数据库中的数据将全部丢失,所以需要redis持久化。redis持久化就是把数据保存在磁盘上,利用永久性存储介质将数据保存,在特定的时间将保存的数据进行恢复的工作机制。
2023-01-05 00:49:32
561
4
原创 css 媒体查询
CSS 媒体查询为你提供了一种应用 CSS 的方法,仅在浏览器和设备的环境与你指定的规则相匹配的时候 CSS 才会真的被应用,例如“视口宽于 480 像素”的时候。媒体查询是响应式 Web 设计的关键部分,因为它允许你按照视口的尺寸创建不同的布局,不过它也可以用来探测和你的站点运行的环境相关联的其它条件,比如用户是在使用触摸屏还是鼠标。
2023-01-03 19:06:01
8222
原创 js Proxy 的使用
Proxy 可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。
2023-01-02 17:56:13
2237
转载 js Module 模块的使用
ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。
2022-12-28 11:10:12
2246
1
原创 Promise对象的使用
Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。
2022-12-23 22:34:37
2993
原创 css 网格布局
网格是由一系列水平及垂直的线构成的一种布局模式。一个网格通常具有许多的列(column)与行(row),以及行与行、列与列之间的间隙,这个间隙一般被称为沟槽(gutter)。
2022-12-19 16:05:33
951
原创 sql语句中distinct的用法
distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。distinct只能返回它的目标字段,而无法返回其它字段。
2022-11-03 17:04:57
4895
原创 go 下划线的使用
“_”是特殊标识符,用来忽略结果。例:main.gohello.go结果:分析: import 下划线(如:)的作用:当导入一个包时,该包下的文件里所有函数都会被执行,然而,有些时候我们并不需要把整个包都导入进来,仅仅是是希望它执行init()函数而已。这个时候就可以使用 引用该包。即使用只是引用该包,仅仅是为了调用函数,所以无法通过包名来调用包中的其他函数。常用mysql例:分析: 第二个import就是不直接使用mysql包,只是执行一下这个包的init函数,把mysql的驱动注册到sql
2022-06-27 15:26:48
418
原创 go map原理理解
map同样也是数组存储的的,每个数组下标处存储的是一个bucket,这个bucket的类型见下面代码,每个bucket中可以存储8个kv键值对,当每个bucket存储的kv对到达8个之后,会通过overflow指针指向一个新的bucket,从而形成一个链表,看bmap的结构,我想大家应该很纳闷,没看见kv的结构和overflow指针啊,事实上,这两个结构体并没有显示定义,是通过指针运算进行访问的。
2022-06-25 14:30:12
307
原创 slice切片底层原理
切片本身并不是动态数组或者数组指针。它内部实现的数据结构通过指针引用底层数组,设定相关属性将数据读写操作限定在指定的区域内。切片本身是一个只读对象,其工作机制类似数组指针的一种封装。切片(slice)是对数组一个连续片段的引用,所以切片是一个引用类型。这个片段可以是整个数组,或者是由起始和终止索引标识的一些项的子集。需要注意的是,终止索引标识的项不包括在切片内。和数组不同的是,切片的长度可以在运行时修改,最小为 0 最大为相关数组的长度:切片是一个长度可变的数组。结构体:如图:分析: 切片的结构体由
2022-06-25 12:08:51
2061
原创 map类型的介绍
map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型。说明:1、KeyType: 表示键的类型。2、ValueType: 表示键对应的值的类型。分析: map类型的变量默认初始值为nil,需要使用make()函数来分配内存。三、map基本使用例:结果:声明时填充元素例:结果:四、判断某个键是否存在语法:例:结果:五、遍历map例:结果:分析: 遍历map时的元素顺序与添加键值对的顺序无关,所以每次遍历输出的结果都不一样语法:说明:1、map:
2022-06-25 00:12:42
4265
原创 golang slice切片
string本身是不可变的,因此要改变string中的字符,需要将字符串转化成切片。在大批量添加数据时,建议一次性分配足够大的空间,以减少内存分配和数据复制开销。函数 copy 在两个 slice 间复制数据,复制长度以 len 小的为准。string底层就是一个byte的数组,因此,也可以进行切片操作。在函数内等号左半部分可以用。1、切片追加另外一个切片。4、从数组中切片赋值。2、切片追加一个元素。3、切片追加多个元素。
2022-06-24 23:05:18
714
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人