基础算法
基础算法,http,hash算法
加密算法
对称加密
-
k 对数据加密,同时也可以使用key进行解密
- f ( k , d a t a ) = y f(k ,data) = y f(k,data)=y // 对数据data加密得到数据y
- f ( k , y ) = d a t a f(k, y) = data f(k,y)=data // 对数据y进行解密得到数据data
非对称加密
-
私钥加密,公钥解密
- f ( s k , d a t a ) = y ‘ f(sk, data) = y` f(sk,data)=y‘
- $f(pk, y`) = data $
-
公钥加密,私钥解密
- f ( p k , d a t a ) = y ‘ f(pk, data) = y` f(pk,data)=y‘
- f ( s k , y ‘ ) = d a t a f(sk, y`) = data f(sk,y‘)=data
HTTP
TCP链接 的几种状态
三次握手
客户端与服务端三次握手从解决
网络信道
不可靠的问题,同时保证服务端与客户端链接的一致性
为什么是三次握手不是两次握手?SYN+ACK 发送完成后就建立链接?
数据传输
创建发送缓存区
发送报文: 序列号+长度+数据内容
回复确认: ACK=序列号+长度 = 下一包的起始序列号
四次挥手
Http缓存
缓存状态码:
304: 未修改,自从上次请求之后,请求的网页未修改过,但是请求者应继续使用原有的位置来进行以后的请求。
301: 官方示意永久性移动,表示请求的网页永久移动到了新的位置
强制缓存
Cache-control: max-age: 1000
Cache-control: no-cache
协商缓存
- 浏览器发起请求
- 服务器返回协商标识
- 浏览器记录协商标识
- 再次发起请求,协带协商标识
- 服务端验证协商标识,
- 如果没有发生变化则返回304,
- 否则返回200 并返回响应体
1. Modify-cache
If-Modified-Since : Tue, 28 Sep 2021 08:18:21 GMT
Last-Modified: Tue, 28 Sep 2021 08:18:21 GMT
2. Etag-cache
- If-None-Match: “6152cfcd-13dff”
- ETag: W/“6152cfcd-13dff”
算法及数据结构
抽象数据类型定义的三要素
- 类型名称
- 数据对象集
- 操作集
排序算法
- 冒泡排序
- 插入排序
- 希尔排序
- 先进行5间隔的排序,3间隔排序,间隔数不应该有相同的最大公约数 1,3,5,7,13
- 选择排序
- 堆排序
线性表
什么是队列?
队列:具有一定操作约束的线性表
- 插入和删除操作:只能在一端插入,而在别一端删除
- 循环线性表:首尾相链,size = n-1 ,
单向链表队列?
队首:front
队尾:rear
Hash算法
有限的空间内对数据进行存放,Hash碰撞后的处理方式
什么是栈
栈的特性:选进后出
处理具有相关关系的数据,如javascript 函数执行也是使用栈的结构,进行先进后出处理
什么是推
放在一起且有优先级的数据,使用《完全二叉树》进行描述
从上到下,按照一定顺序排列(从上到下,从大到小)