基础算法,http,hash算法

基础算法

基础算法,http,hash算法

加密算法

对称加密

  • k 对数据加密,同时也可以使用key进行解密

    1. f ( k , d a t a ) = y f(k ,data) = y f(k,data)=y // 对数据data加密得到数据y
    2. f ( k , y ) = d a t a f(k, y) = data f(k,y)=data // 对数据y进行解密得到数据data

非对称加密

  • 私钥加密,公钥解密

    1. f ( s k , d a t a ) = y ‘ f(sk, data) = y` f(sk,data)=y
    2. $f(pk, y`) = data $
  • 公钥加密,私钥解密

    1. f ( p k , d a t a ) = y ‘ f(pk, data) = y` f(pk,data)=y
    2. f ( s k , y ‘ ) = d a t a f(sk, y`) = data f(sk,y)=data

HTTP

TCP链接 的几种状态

三次握手

客户端与服务端三次握手从解决网络信道不可靠的问题,同时保证服务端与客户端链接的一致性

client server init状态 Listen状态 发起第一次握手请求 发起SYN数据包 syn-send状态 第一次握手成功 发送 SYN+ACK包 确认建立 syn-rcvd状态 第二次握手成功 ACK数据包 第三次握手成功 握手成功进行 established 状态 client server 三次握手

为什么是三次握手不是两次握手?SYN+ACK 发送完成后就建立链接?

数据传输

创建发送缓存区

发送报文: 序列号+长度+数据内容

回复确认: ACK=序列号+长度 = 下一包的起始序列号

四次挥手

client server 链接确信状态 FIN指令 第一次挥手 ACK指令 第二次挥手 此时通道进入即将关闭状态, 不再接收新的请求将未处理完的请求处理完- 未完成的请求持续发送 未完成的请求持续发送 FIN指令 第三次挥手 ACK指令 第四次挥手 断开链接 进入等待超时状态 断开链接 client server 四次挥手

Http缓存

缓存状态码:

304: 未修改,自从上次请求之后,请求的网页未修改过,但是请求者应继续使用原有的位置来进行以后的请求。

301: 官方示意永久性移动,表示请求的网页永久移动到了新的位置

强制缓存

Cache-control: max-age: 1000

Cache-control: no-cache

协商缓存
  1. 浏览器发起请求
  2. 服务器返回协商标识
  3. 浏览器记录协商标识
  4. 再次发起请求,协带协商标识
  5. 服务端验证协商标识,
    1. 如果没有发生变化则返回304,
    2. 否则返回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

client server 发起资源请求 Last-Modified: Tue, 28 Sep 2021 08:18:21 GMT 响应资源请求 responseHeader 缓存Modified信息 协带Modified协商标识再次发起请求 发起资源请求 判断Last-Modified与If-Modified-Since是否一致? 响应304状态码 从浏览器获取缓存信息 响应200状态码 服务端返回响应数据 alt [一致] [不一致] loop [再次发起请求] client server 协商缓存
2. Etag-cache
  • If-None-Match: “6152cfcd-13dff”
  • ETag: W/“6152cfcd-13dff”
Link text
One
Two
服务端
f3
i3
浏览器
f1
i1
f2
Hard edge
Round edge
Decision
Result one
Result two

算法及数据结构

抽象数据类型定义的三要素

  • 类型名称
  • 数据对象集
  • 操作集

排序算法

  • 冒泡排序
  • 插入排序
  • 希尔排序
    • 先进行5间隔的排序,3间隔排序,间隔数不应该有相同的最大公约数 1,3,5,7,13
  • 选择排序
    • 堆排序

线性表

什么是队列?

队列:具有一定操作约束的线性表

  • 插入和删除操作:只能在一端插入,而在别一端删除
  • 循环线性表:首尾相链,size = n-1 ,
单向链表队列?

队首:front

队尾:rear

A,队首
B
C
D,队尾

Hash算法

有限的空间内对数据进行存放,Hash碰撞后的处理方式

什么是栈

栈的特性:选进后出

处理具有相关关系的数据,如javascript 函数执行也是使用栈的结构,进行先进后出处理

什么是推

放在一起且有优先级的数据,使用《完全二叉树》进行描述

从上到下,按照一定顺序排列(从上到下,从大到小)

4
5
6
7
8
9
10
这就是一个堆及它的应用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

从未、淡定

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值