字节面经

链接:字节一面

  1. 自我介绍
  2. 了解https吗?
  3. ssl的具体流程
  4. 对称密钥为什么速度快
  5. 进程的生命周期
  6. 进程调度
  7. 数据库的索引
  8. 数据库覆盖索引
  9. 数据库聚集索引和辅助索引
  10. 数据库的三大范式

一、HTTPS

HTTPS是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性,即HTTPS 在HTTP 的基础下加入SSL 层来保证传输安全性。
HTTP与HTTPS协议的区别

  1. https协议要申请证书到ca,需要一定经济成本;
  2. http是明文传输,https是加密的安全传输;
  3. 连接的端口不一样,http是80,https是443;
  4. http连接很简单,没有状态;https是ssl加密的传输,身份认证的网络协议,相对http传输比较安全。

https协议加密算法步骤:

  1. 首先随机生成单次请求加密密钥(clientAesKey,长度为 16 位,可以用 26 个字母和数字组成)
  2. RSA (非对称加密)负责加密一个字符串(clientAesKey)
  3. AES(对称加密)负责用这个字符串(clientAesKey)、明文加密为一个密文
  4. 解密时首先要用 RSA 获取这个字符串(clientAesKey)、然后再用 AES 解密密文。

二、ssl的具体流程

分为服务器认证阶段用户认证阶段

服务器认证阶段

  1. 客户端向服务端发起请求,建立连接
  2. 服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“请求”信息时将包含生成主密钥所需的信息
  3. 客户端根据收到的服务端响应消息,产生主密钥,根据服务端的公钥加密消息发送至服务端
  4. 服务器恢复收到的加密消息,并返回给客户一个用主密钥认证的信息,以此做客户端认证。

用户认证阶段

在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。

三、对称密钥为什么速度快

1.从运算角度来讲

这是因为对称加密主要的运算是位运算,速度非常快,如果使用硬件计算,速度会更快。以 AES(对称加密) 算法为例,如下图所示,其运算本质上来说就是位移和替换。

但是非对称加密计算一般都比较复杂,比如 RSA,它里面涉及到大数乘法、大数模等等运算。幂运算的本质是乘法,乘法的基础单位是加法,也就是我们最常见的整数加。

2.从加解密方式

进程的生命周期


进程是一个动态的实体,从创建到消亡,是一个进程的整个生命周期。进程可能
会经历各种不同的状态,一般来说有三种状态。

  • 就绪态: 进程已经获得了除cpu以外的所有其它资源,在就绪队列中等待cpu调度
  • 执行状态: 已经获得cpu以及所有需要的资源正在运行
  • 阻塞状态(等待状态): 进程因等待所需要的资源而放弃处理器,或者进程本
    来就不拥有处理器,且其它资源也没有满足

状态转换: 就绪态的进程得到cpu调度就会变为执行状态,执行态的进程如果因
为休眠或等待某种资源就会变为等待状态,执行态的进程如果时间片到了就会重
新变为就绪状态放入就绪队列末尾,等待状态的进程如果得到除cpu以外的资源
就会变为就绪状态

注意处于等待状态的进程不能直接转变为执行状态,而首先要变为就绪状态,哪怕系统中只有一个进程

数据库索引

参考

一、数据索引是干什么用的呢?
数据库索引其实就是为了使查询数据效率快。

二、数据库索引有哪些呢?
1.聚集索引(主键索引):在数据库里面,所有行数都会按照主键索引进行排序。
2.非聚集索引:就是给普通字段加上索引。
3.联合索引:就是好几个字段组成的索引,称为联合索引。

数据库聚集索引和辅助索引

  • 聚集索引:按照每张表的主键构造一颗B+树。同时也叶子节点中存放的即为整张表的行记录数据,也将聚集索引的叶子节点称为数据页。这个特性决定了索引组织表中数据也是索引的一部分。同B+树数据结构一样,每个数据页一样都是通过一个双向链表来进行链接。 由于实际的数据页只能按照一棵B+树进行排序,因此数据库中每张表只能有一个聚集索引。

  • 聚集索引的好处:
    数据页上存放的是完整的每行的纪录,而非数据页的索引页中,存放的仅仅是键值及指向数据页的偏移量,而不是一个完整的行记录它对于主键的排序查找和范围查找速度非常快
    注:聚集索引的存储不是物理上连续的,而是逻辑上连续的。这其中有两点:数据页通过双向链表链接,并按照主键排序每个数据页中的记录也通过双向链表进行维护的,物理存储上可以同样不按照主键存储
    辅助索引(也称非聚集索引),叶子节点并不包括行记录的全部数据。叶子节点除了包括键值以外,每个叶子节点索引行中还包括一个书签(bookmark)。 这个书签用来告诉InnoDB引擎从哪里可以找到与索引相对应的行数据。 由于InnoDB引擎是索引组织表,因此,这个书签就是相应的行数据的聚集索引键。辅助索引的存在不会对影响数据在聚集索引中的组织,因此每张表上可以有多个辅助索引。

数据库三大范式

参考
第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。

第二范式:如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。

第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF.

通俗理解:

  • 第一范式:
    • 每一列属性都是不可再分的属性值,确保每一列的原子性
    • 两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。
  • 第二范式:
    • 每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。
  • 第三范式:
    • 第三范式确保主键列之间没有传递函数依赖关系,也就是消除传递依赖,即保证每列之间的关系不能出现重复或者无关的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值