服务端3月1日 19:25
DNS 递归查询和迭代查询有什么区别?递归查询:客户端问解析器,解析器负责从头到尾查完返回最终结果——客户端只发一次请求。迭代查询:解析器问根服务器拿到 TLD 地址,再问 TLD 拿到权威地址,再问权威拿到最终 IP——解析器自己一步步问。实际流程:客户端→解析器是递归,解析器→根/TLD/权威是迭代。
## 追问
### 为什么不全用递归?
根/TLD 服务器不提供递归服务——它们服务全球数十亿客户端,每个递归请求都打到根服务器扛不住。根只告诉你下一步问谁(迭代),解析器负责串联。
### 解析器怎么知道根服务器地址?
内置的根提示文件(root hints),包含 13 组根服务器的 IP。BIND/Unboun...服务端3月1日 19:34
DNS 根服务器是什么?全球有多少个?根服务器是 DNS 层级最顶端,返回所有 TLD(.com/.org/.cn 等)的服务器地址。全球 13 组根服务器(A-M),13 是早期 UDP 512 字节包大小限制的结果。每组通过 Anycast 技术在全球部署数百个实例,实际根服务器节点超过 1000 个。
## 追问
### 只有 13 组不会单点故障吗?
Anycast 解决——同一 IP 全球数百个节点,请求自动路由到最近的。某节点故障流量自动切到其他节点。加上解析器缓存,根服务器实际负载不高。
### 根服务器被攻击会怎样?
2015 年 DDoS 攻击导致部分根服务器离线数小时,用户基本无感知——解析器有缓存...服务端3月1日 19:30
DNS 负载均衡怎么实现?有哪些方案?DNS 负载均衡就是同一域名返回多个 IP,客户端随机选一个访问。三种方案:轮询(Round Robin)——权威服务器按顺序返回不同 IP,简单但无法感知服务器负载;加权 DNS——不同 IP 返回不同比例,权重控制流量分配;GeoDNS——根据客户端 IP 所在地区返回最近的服务器 IP,CDN 核心技术。局限:无法做健康检查、受 TTL 缓存影响切换慢、客户端可能缓存某个 IP 不轮询。
## 追问
### DNS 负载均衡和 Nginx 负载均衡有什么区别?
DNS 在域名解析层分配 IP,客户端直连服务器——无中间层延迟但无法精细控制。Nginx 在应用层代理——可做健康检...服务端3月1日 18:56
如何用 cURL 编写 API 自动化测试脚本?cURL 测试脚本 = cURL 命令 + shell 判断 + 状态码/响应体验证。核心模式:curl -s -o /dev/null -w "%{http_code}" URL 拿状态码;curl -s URL | jq .field 提取响应体字段;for/while 循环批量测试。进阶:--fail 返回非零表示 HTTP 错误、--max-time 10 超时控制、--retry 3 重试。
## 追问
### cURL 和 Postman 做测试哪个好?
cURL 适合 CI/CD 管道和脚本化——轻量、无 GUI 依赖、易版本控制。Postman 适合手动探索和团队协作...服务端3月1日 19:26
DNS 缓存怎么工作?TTL 起什么作用?DNS 查询每级都缓存:浏览器缓存(Chrome 约 1 分钟)→ 操作系统缓存(TTL 决定)→ 本地解析器缓存(运营商/企业 DNS)→ 权威服务器。TTL(Time To Live)是权威服务器设定的缓存有效期,单位秒。TTL=300 表示缓存 5 分钟内可直接使用,过期后必须重新查询。越短数据越新但查询越多,越长越快但变更延迟越大。
## 追问
### 浏览器 DNS 缓存怎么看?
Chrome 地址栏输入 chrome://net-internals/#dns 查看缓存条目和过期时间。
### 运营商会篡改 TTL 吗?
会。部分运营商 DNS 强制最低 TTL(5 分钟...服务端3月1日 21:04
区块链有哪些安全威胁?51%攻击和双花攻击怎么防?三大威胁:51%攻击——控制超半数算力/权益后可回滚交易;双花攻击——同一笔钱花两次;智能合约漏洞——重入、溢出、权限缺失。51%防御:PoS 中 slash 没收质押金让攻击成本远超收益。双花防御:等 6 个确认(BTC)或 finalize(ETH PoS 约 12 分钟)。合约防御:Checks-Effects-Interactions 模式、OpenZeppelin 库、审计。
## 追问
### 51%攻击在 PoS 链上更容易还是更难?
更难。PoW 攻击后算力还在手上无损失。PoS 攻击被发现后质押金被 slash 没收,经济损失巨大且不可逆。
### 交易所如何防双...服务端3月1日 20:59
区块链用了哪些密码学技术?哈希、签名和 Merkle Tree 各起什么作用?三大核心:哈希函数(SHA-256/Keccak256)保证数据完整性,区块头哈希链接形成链;数字签名(ECDSA/EdDSA)私钥签名公钥验证,证明交易身份;Merkle Tree 只需 log(n) 个哈希即可证明某笔交易在区块中(SPV 验证)。三者协作:签名保证身份,哈希保证不可篡改,Merkle 保证高效验证。
## 追问
### SHA-256 和 Keccak256 有什么区别?
SHA-256 是 NIST 标准(比特币),Keccak256 是 SHA-3 竞赛获胜者(以太坊)。算法完全不同:SHA-2 是 Merkle-Damgard 构造,Keccak 是海绵构...服务端3月1日 20:30
Service Worker 调试有哪些常用方法和工具?Chrome DevTools 是主战场:Application > Service Workers 面板可查看注册状态、更新、卸载;Sources 面板可打断点;Network 面板勾选 Bypass for network 绕过 SW。Console 里 self.addEventListener(fetch, e => console.log(e.request.url)) 打日志最直接。开发时勾选 Update on reload 避免手动等待激活。
## 追问
### SW 更新后页面还是旧逻辑?
SW 更新走 install→wait→activate。wait 阶段等旧...服务端3月1日 21:07
DeFi 是什么?核心协议和流动性挖矿怎么运作?DeFi 是在区块链上用智能合约替代传统金融中介的开放金融体系。三大核心协议:DEX(Uniswap 用 AMM 自动做市取代订单簿)、借贷协议(Aave/Compound,超额抵押借款,利率由供需算法决定)、衍生品(dydx 链上永续合约)。流动性挖矿:用户向资金池提供流动性获得 LP 代币+治理代币奖励。
## 追问
### AMM 和订单簿哪个好?
AMM 无需撮合随时可交易,适合长尾资产。但大额滑点大且有无常损失。订单簿体验接近 CEX,但需要链下撮合引擎。
### 什么是无常损失?
LP 提供两种代币后价格比例变化,LP 持有的资产价值低于简单持有两种代币。差值即无常损失...服务端3月1日 22:00
Zustand 有哪些常用中间件?怎么用?Zustand 中间件就是高阶函数,用函数组合串联:create(devtools(persist(immer((set) => ...)))) 从内到外依次包裹。常用 5 个:persist 持久化到 storage;immer 支持 mutable 写法更新嵌套对象;devtools 接入 Redux DevTools;subscribeWithSelector 精确订阅子属性变化;combine 合并多个 slice。
## 追问
### 中间件的执行顺序有讲究吗?
有。从内到外:最内层的先执行。devtools(persist(immer(...))) 意味着 immer 先...