获得徽章 1
1月11日 打卡day10
今日学习
JavaScript的一些代码实现
回到顶部,通过计时器去滑动比较丝滑
过滤特殊字符,通过pattern = new RegExp("$:!_//"),然后strong.substr.replace(pattern)
展开
评论
1月6日 打卡day9
今日学习
普通sql全表扫描的过程
首先本质上数据都存储在磁盘磁盘上,当发生磁盘IO,首先会根据给出的磁盘地址,在盘面上寻道。当找到对应地址(本地表数据文件中的起始地址),就可以读取二进制数据。mysql这里会有一个优化叫局部性读取原理
提前将数据从内存放入三级缓冲区,这样不止读取一页而是相关的几页数据。也就是一次磁盘IO不止会读一条表数据,而是多条表数据。在IntoDB,一次默认是16KB
因为mysql的全表扫描机制(防止没建主键同名的数据),所以要建立索引。
这里要知道树在磁盘中,各节点的数据是并不连续的,没法利用局部性原理
不选择二叉树是因为,如果字段按顺序增长,查询就变成了链表结构和全表扫描。
不选择红黑树是因为,树矮的不够多,一个结点只能存一个数据,并且也不能利用局部性原理
B树是让单节点可存多个数据,可以利用局部性原理,但是对于大范围性查找,那么多个数据肯定不会在一个节点,所以也要触发多个磁盘IO
B+树的叶结点不存数据,存索引,还有叶子结点的数据由指针指,所以对于大范围数据来说,只要知道第一个节点的位置,就能获取到对应范围内的所有节点。
展开
评论
1月5日 打卡day8
今日学习
计网实验二原来的抓包的工具,wireshark,
并且对https整个加密的过程有了更详细的了解
整个加密过程分为两阶段,一个是TLS四次握手,利用非对称加密的特性交换信息,最终得到一个会话密钥。
第一次握手,客户端告诉服务器,我这边支持的加密协议版本TSL1.2,使用的加密套件是RSA,一个客户端随机数。
第二次握手,服务器随机数+服务器证书+ACK(TSL1.2),
第三次握手,这边客户端生成一个随机数pre_master_key,从服务证书里取出服务器公钥,用公钥加密pre_Master_key随机数,发给服务器。这时候客户端用已经拥有的三个随机计算得到一个“会话密钥”,客户端把通信数据内容生成一个摘要,用会话密钥加密一下,发给服务器做检验。
第四次握手,服务器把从客户端传过来的pre_master_key(用服务器这边的私钥解密),集齐3个随机数,也生成一个“会话密钥”,发给客户端,说明我这边使用这个会话密钥进行加密通信。
三个随机数依次叫:client andom ,server random ,pre_master_key经过f(x)后生成会话密钥
可以认为,只要知道这三个随机数,就能破解https通信。
如何得到pre_master_key,在它进行TLS四次握手之前,使用环境变量SSLKEYLOGFILE就能干预,让它输出pre_master_key的文件。(目前curl和chrome 支持)
然后还要回看Ssl.key文件,找到第三个随机数,确定前两个随机数的位置就能找到了。这个文件包含3列,最重要的第二列的client random和第三节的pre_master_key
展开
评论
从URL输入到页面展现发生了什么
一DNS解析,将域名解析为IP地址,二tcp了解,三次握手,三发送http请求,四服务器处理请求并返回http报文,五浏览器解析渲染页面,六断开连接,tcp四次挥手
http的默认端口号是80,url格式
scheme://host.domain:port/path/filaname?abc=123#456789
path定义的是服务器上的路径,filename定义的资源的名称
第一步浏览器需要通过ip地址找到服务器,使用DNS域名解析,在DNS上记录一条信息记录。
DNS域名解析一般为迭代查询,不停的问
第二步TCP三次握手建立连接
第三步,发送http请求
第四步,服务器处理请求并返回http报文,每个浏览器自带一个处理请求的应用,常用的有,apache,ngnix,IIS,lighttpd
第五步,浏览器解析渲染页面
第六步,断开连接进行tcp四次挥手

展开
评论
1月2日 打卡day7
今日学习
更详细的了解了网关代理nginx的作用,起到前端和后端连接的作用,是个中间人
而5XX的状态码是由nginx返回的,502就是网关代理把客户端的请求转发给服务器的时候,服务器无效反应。
评论
下一页
个人成就
文章被阅读 176
掘力值 10
收藏集
0
关注标签
0
加入于