JSON 与结构化数据
6 篇指南一份可以直接查阅的 JSON 参考:语法边界、如何把解析器给出的偏移量还原成你打错的那个字符、数字和字符串在哪里悄悄丢信息,以及为什么合法的 JSON 仍然会被接口拒绝。
阅读指南 →配置格式JSON、YAML 与 TOML:在互转中不丢语义三种配置格式在数据模型、注释和类型系统上的差异,哪些 YAML 标量会在无提示的情况下变类型,以及一次转换究竟悄悄扔掉了什么。
阅读指南 →表格数据把嵌套 JSON 变成表格,而不毁掉数据嵌套 JSON 的三种展平策略、它们带来的表头与稀疏问题、RFC 4180 的引号规则、CSV 公式注入,以及表格根本就是错误形状的那些情况。
阅读指南 →查询指南JSONPath:选择器、过滤器,以及各家实现互不兼容的部分JSONPath 选择器、切片与过滤表达式的实例参考,2024 年 RFC 9535 标准化了什么,主流库至今仍有哪些差异,以及什么时候该改用 jq 或 JSON Pointer。
阅读指南 →XML 指南XML 校验与格式化:良构、有效,以及安全良构与 schema 有效性的区别、真正要紧的那五个转义、命名空间如何让 XPath 失灵、为什么美化排版可能改变语义,以及如何关掉 XXE。
阅读指南 →日志取证从日志里的 Java toString() 输出中还原结构Java 的 Map、集合、record 与 Lombok toString 格式是怎么构成的,为什么它们不是 JSON,如何把它们转换回来,以及哪些歧义是任何解析器都无法消除的。
阅读指南 →编码与文本
6 篇指南Base64 到底解决什么问题、三字节换四字符的变换如何进行、Base64URL 与补位有何差别、为什么必须先定 UTF-8,以及为什么 Base64 藏不住任何东西。
阅读指南 →正则指南如何正确地测试一个正则表达式一套可复用的正则测试流程:先造出「差一点就匹配」的语料、看清匹配边界、把每个标志当成模式的一部分,并识别出上线后才会暴露的回溯灾难与方言差异。
阅读指南 →URL 指南URL 编码详解:百分号编码、分量与 PunycodeURL 保留了哪些字符、为什么规则随分量而变、encodeURI 与 encodeURIComponent 的差别、加号什么时候代表空格,以及国际化域名究竟是怎么编码的。
阅读指南 →转义指南HTML 实体与按上下文转义为什么转义取决于值最终落在哪里、文本/属性/URL/JavaScript/CSS 各自的规则、命名实体与数字实体的差别,以及为什么按上下文做输出编码(而不是过滤输入)才是 XSS 的防线。
阅读指南 →比较指南文本比较:一套能抓住真实改动的 diff 流程如何在字符、单词、行三种粒度之间取舍,怎样先消除空白与换行符噪声,如何读懂统一 diff 的块头,怎样识别被移动的代码块,以及如何审阅机器生成的输出而不是走过场。
阅读指南 →Markdown 指南CommonMark、GFM,以及写出「能活着到达」的 Markdown为什么 Markdown 在各处渲染结果不同、CommonMark 钉死了哪些规则、GitHub Flavored Markdown 加了什么、原始 HTML 如何被消毒,以及怎样写出在每个目的地都长得一样的文档。
阅读指南 →安全与标识符
6 篇指南JWT 三段分别装了什么、为什么解码什么都证明不了、注册声明应当如何被强制校验,以及算法混淆是怎么防住的。
阅读指南 →标识符指南UUID v1、v4、v7 与命名空间版本:该选哪一个UUID 的 128 位是怎么排布的、每个版本各自让出了什么、随机主键为什么伤索引,以及一个 UUID 会泄露它在何时何地被生成。
阅读指南 →安全指南如何生成一个安全的密码,以及密码到底强在哪里密码强度背后的熵计算、长度为什么胜过字符类规则、Math.random 为什么让生成器失去意义,以及强制换密码为什么反而让密码变差。
阅读指南 →安全指南哈希与校验和:验证文件,并选对算法哈希函数保证什么、不保证什么,如何验证下载以及这种验证到底值多少,MD5 与 SHA-1 为什么被淘汰,以及密码存储为什么需要一个刻意放慢的算法。
阅读指南 →安全指南如何读懂一张 TLS 证书:字段、证书链、文件格式与信任报错X.509 证书各字段的含义、证书链如何构建又为何断裂、PEM / DER / PFX / P7B 里到底装了什么,以及随之而来的浏览器报错怎么读。
阅读指南 →安全指南HTTP Basic 认证与 htpasswd:它是怎么工作的,什么时候该用Basic 认证在链路上究竟发了什么字节、为什么离开 TLS 就毫无意义、htpasswd 各种哈希算法各值多少、bcrypt 成本该怎么选,以及 Basic 认证在哪些场景才是正确答案。
阅读指南 →时间、数字与格式
5 篇指南Unix 与 Quartz 的字段顺序、步长与区间语法的真实含义、「日」与「星期」之间的或逻辑、夏令时切换的行为,以及上线前如何预览下一批执行时间。
阅读指南 →时间指南Unix 时间戳与时区转换秒与毫秒、UTC 与本地时间、ISO 8601 与 RFC 3339、为什么偏移量不等于时区、如何把一个时刻存得住,以及闰秒和 2038 问题到底改变了什么。
阅读指南 →编码指南进制全解:二进制、八进制、十六进制、Base32、Base64 与 Base58位值记数法、十六进制为何胜出、RFC 4648 的字节编码与数值进制的区别、Base58、有符号数的补码表示,以及每种进制真正出现在什么地方。
阅读指南 →数据库指南把 SQL 格式化成能评审的样子按子句结构而不是行顺序读查询、方言相关的标识符与大小写折叠、能扛住评审的排版方式,以及格式化能暴露的那一类缺陷 —— 还有它回答不了的性能问题。
阅读指南 →性能指南开发者需要知道的 gzip 压缩DEFLATE 的工作方式、gzip 与 zlib 两种容器的区别、Content-Encoding 与 Transfer-Encoding 的分工、gzip 在真实数据上与 brotli 和 zstd 的对比,以及压缩反而更糟的那些情形。
阅读指南 →网络与多媒体
6 篇指南IP 查询能证明什么、不能证明什么,同一台机器上 IPv4 与 IPv6 结果为何不同,如何读懂浏览器里的 WebRTC 与 DNS 解析器信号,以及如何负责任地使用 IP 数据。
阅读指南 →可用性指南如何检查网站可用性、状态码与延迟沿着完整请求路径检查站点 —— DNS、TCP、TLS、HTTP —— 区分超时与 5xx,读懂跳转链,对比不同区域,并把一次性检查变成可用的故障信号。
阅读指南 →代理指南如何测试代理、检查代理健康度并对比区域一套代理测试的诊断流程:批量之前先验一个端点、判断失败发生在哪一段、正确解读响应、对比区域出口,以及妥善处理凭据与授权。
阅读指南 →WebRTC 指南WebRTC 点对点传输究竟是怎么连上的浏览器之间建立数据通道的真实过程:信令、SDP 的 offer 与 answer、ICE 候选收集、STUN 与 TURN、NAT 行为、DTLS 加密,以及什么时候中继不可避免。
阅读指南 →编码指南生成与扫描二维码:把该知道的事搞清楚二维码的结构、版本与编码模式如何决定容量、纠错等级到底牺牲了什么、扫不出来的常见原因,以及为什么扫一个来路不明的码等同于点一个来路不明的链接。
阅读指南 →图像指南把证件照做到符合规格毫米尺寸背后的像素换算、把 DPI 讲清楚、头部比例、背景与底色规则、上传表单的文件大小限制,以及一句实话:没有任何工具能保证受理方会通过。
阅读指南 →