一、八股
1.CSRF 攻击是什么
答 CSRF 跨站请求伪造,攻击者伪造用户去访问目标网站,从而达到攻击的目的,可以通过 CSRFtoken,二次验证,校验 Referer 等方式解决。
2.联合查询怎么写
select u.id ,u.name ,o .id ,o .
name amount from users u inner join orders o on u.id = o.uid
3.用户态和内核态
当 CPU 遇到系统调用,发生中断或者异常的时候会从用户态切换到内核态,首先是保存当前状态如栈指针,程序计数器等,然后切换 CPU 特权级别指令级别从 Ring3 到 Ring0,根据系统调用号和中断向量去处理,当处理完毕会恢复运行状态并且切换特权级别回到用户态。
4.操作系统管理内存的方式
操作系统按照页为单位管理物理内存,对于每个进程维护一个独立的虚拟地址空间,在访问时需要把地址从虚拟地址转换成物理地址,结合 mmu 和页表,tlb 等,如果缺页触发缺页异常调入,如果内存不足会发生页面回收和置换,操作系统通过 brk 和 mmap 系统调用去申请虚拟地址空间,在第一次访问之前不实际申请,程序员可以通过 malloc 申请堆上内存。
5.brk 和 mmap 的实现
brk 是通过移动堆顶指针实现的,mmap 是通过在虚拟地址空间申请一块空闲的区域实现,brk 的空间释放会在 malloc 中,mmap 的空间通过 munmap 释放。
二、手撕
今天的内容没有太难的,只是写的时候耗时间,然后发现了一个用单队列模拟栈的方法,就是每次有数据就从前到后取出,重新在队尾插入,用时间换空间,因为每次 push 都需要把所有的做一遍这个操作。
三、前端相关知识
第一个是 inputbutton 和 div,js 可以通过 getElementById 捕获变量然后做操作,结果可以在 dv 的位置去显示。
然后是学习了 DOM 和事件的概念,浏览器把网页解析成一棵 DOM 树,有数据对象模型组成,当事件发生,比如点击按钮发生,js 可以捕获事件。
在学习的过程中发现 div 很重要因为第一个实践就发现不同的函数显示在了一起,互相覆盖。