摘要:
1. TCP 的可靠传输 1.1 停止等待 ARQ 协议 主机采用 TCP 发出信息时会设置一个定时器, 若超出定时器所设定的时间还没有响应过来, 则主机会认为发出去的消息没有传达到目的主机, 故而将信息重新发送 当主机重传一定次数后仍然没有接收到对该消息的响应, 主机会判断网络有问题, 从而发送 阅读全文
摘要:
1. 为什么会有 Promise 当我们多次进行有依赖的网络请求或者文件请求时, 很可能会造成代码的层层嵌套, 导致回调地狱的出现: $.ajax({ url: "xxx", success: function(result) { $.ajax({ url: result, success: fun 阅读全文
摘要:
1. 二进制分帧层 HTTP/2 新增了二进制分帧层, 在不修改 HTTP/1.x 的语义(包括各种动词, 方法, 首部都不受影响)的前提下, 将编码方式改变了 Connection 连接: 一个 TCP 连接, 包含 1 个或多个双向数据流 Stream 流: 双向通信的数据流, 包含 1 个或多 阅读全文
摘要:
1. TCP 首部解析 源端口, 目的端口: 使用 TCP 协议传输数据时, 从本机发送出去时通过的端口和目标机器用于接收的端口 序号(Sequence Number): 用于标记相应的 TCP 报文的第一个字节的一个编号(拆分 TCP 报文发送时, Seq 表示该报文中的数据相对于要发送的所有数据 阅读全文
摘要:
1. 对称加密 1.1 什么是对称加密 当加密和解密用的是同一个密钥时, 我们称这种加密方法为对称加密 1.2 常见的对称加密算法有哪些 1.2.1 DES(Data Encryption Standard)(目前已经可以在短时间内被破译, 不建议使用) DES 是一种将 64bit 明文加密成 6 阅读全文
摘要:
0. 硬盘缓存(disk cache)和内存缓存(memory cache) 当首次请求某一资源, 且该资源被设置需要缓存时, 该资源会被缓存在内存或硬盘中(也有可能两个地方都设有缓存). 当再次请求该资源时, 浏览器就可以不需要向服务器发送请求, 而直接从缓存中获取. 0.1 获取缓存的优先级 先 阅读全文
摘要:
1. 什么是跨域 不同源之间的数据访问称之为跨域 当跨域访问数据时, 如果没有特地做过处理, 则无法获取不同源的数据(通过标签引用 js, img, css 是可以的, 因为虽然我们通过标签获取到了这些资源, 但是我们仍然不知道对应文件中的内容是什么) 1.1 什么是源 所谓的源是指 协议+域名+端 阅读全文
摘要:
1. this 的指向问题 关于函数的 this 的指向并不是一个很复杂的问题 我们首先要明确一个定义: fn = function () {...} 指的是 fn 这个属性存储着一个函数的地址 fn_addr, 而我们通过 fn_addr() 来执行相应地址的函数 接下来我们仍将 fn 称为 fn 阅读全文
摘要:
1. 原型与原型链 1.1 什么是原型 对于任意一个引用类型, 都存在一个属性 [[Prototype]], 这就是我们所说的原型 而对于一个 function, 在存在一个 [[Prototype]] 的基础上, 其还会存在一个 prototype 属性, 这个属性是做什么的呢? function 阅读全文
摘要:
1. 线段树 对于一个给定的数组 \(arr\), 对这个数组中的元素进行若干次如下操作: 根据给定的 \(l\), \(r\), \(v\), 将 \(arr\) 中的 \([l, r]\) 区间的元素 \(+1\) 根据给定的 \(l\), \(r\), 输出 \(arr\) 中的 \([l, 阅读全文