阅读博客汇总

模块加载机制

JavaScript 模块化入门Ⅰ:理解模块 - 知乎 (zhihu.com)

模块打包构建

JavaScript 模块化入门Ⅱ:模块打包构建 - 知乎 (zhihu.com)

ES6模块和CommonJS, AMD一类规范最主要的区别是,当你载入一个模块时,载入的操作实际是在编译时执行的——也就是在代码执行之前。所以去掉那些不必要的exports导出语句可以优化我们应用的性能。

DNS解析过程

通过Wireshark抓包分析谈谈DNS域名解析的那些事儿 - 朱季谦 - 博客园 (cnblogs.com)

函数柯里化:三行代码实现 add(1)(2)(3) - 掘金 (juejin.cn)

const add = x => y => z => x + y + z ;
console.log(add(1)(2)(3))

利用闭包的特性,将参数分批次、一一对应的传入原函数中去,并在收集完所有参数后执行最终函数得到结果。

简单实现

/* 这里参数可分两次传入 */
function curry(fn, ...initArgs) {
  return function (...args) {
    return fn(...initArgs, ...args)
  }
}

function sum(a, b, c) {
  return a + b + c
}
console.log(curry(sum)(1, 2, 3))  // 6
console.log(curry(sum, 1)(2, 3))  // 6
console.log(curry(sum, 1, 2)(3))  // 6
console.log(curry(sum, 1, 2, 3)())  // 6

HTTP 2

二进制;多路复用;头部压缩;允许服务器主动将响应"推送"到客户端缓存

React世界的函数式编程(Functional Programming) - 知乎 (zhihu.com)

TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

  • 防御 XSS 攻击
    • HttpOnly 防止劫取 Cookie
    • 用户的输入检查
    • 服务端的输出检查
  • 防御 CSRF 攻击
    • 验证码
    • Referer Check
    • Token 验证

 浅谈HTTPS(SSL/TLS)原理 - 简书 (jianshu.com)

posted @ 2021-09-19 23:57  范西  阅读(40)  评论(0)    收藏  举报