# The Tech Tree > 一部关于构建 Web 的技术的互动历史。 ## 时代 I:生存与连接 (1969 - 1980s) - [分组交换:网络如何承载任何内容](https://techtree.dylandang.dev/zh/posts/era-1-packet-switching/): 电路交换把带宽浪费在沉默上。分组交换把消息切成独立的小块,让网络忘掉这段对话。正是这一个转变,才有了互联网。 - [ARPANET:一切的开端](https://techtree.dylandang.dev/zh/posts/era-1-arpanet/): 一次登录崩溃、一个紧张的研究生,还有一封不该发的邮件——一个冷战时期的研究项目如何意外地为互联网打下了地基。 [基础文章] - ['Lo' 崩溃:互联网的第一份 bug 报告](https://techtree.dylandang.dev/zh/posts/era-1-lo-crash/): 为什么 Charley Kline 敲了三个字母之后 SRI 的计算机就崩了?到底是什么坏了?一个自动补全功能的缓冲区溢出如何成了互联网的起源故事? - [RFC 1:发明互联网治理的文档](https://techtree.dylandang.dev/zh/posts/era-1-rfc-1/): Steve Crocker 在深夜的浴室里写下了 RFC 1,因为他不想显得专横。这份试探性的文档成为了后来所有互联网标准的范本。 - [Codd 1970 年论文,逐段注解](https://techtree.dylandang.dev/zh/posts/era-1-codd-paper/): 走一遍《A Relational Model of Data for Large Shared Data Banks》——'关系'在数学上到底指什么、哪些想法活到了 SQL、哪些又悄悄被丢弃。 - [关系模型与 SQL:整理世界的数据](https://techtree.dylandang.dev/zh/posts/era-1-relational-model/): Edgar Codd 1970 年的论文给了我们数据库的数学基础,SQL 给了我们一门查询它的语言。IBM 压着它,Oracle 抢先发布了它。 [基础文章] - [JOIN:通过值、而非指针来表达关系](https://techtree.dylandang.dev/zh/posts/era-1-the-join/): 用共享的值而不是物理引用来表达关系,是关系模型真正的突破。五十年后,四种连接类型、三种连接算法,和一个根本问题,仍在驱动世界上大多数的数据。 - [@ 符号:电子邮件是怎么被偷偷带进 ARPANET 的](https://techtree.dylandang.dev/zh/posts/era-1-email-origin/): Ray Tomlinson 把两个已经存在的程序粘到一起,作为一个未经授权的副业;挑了一个没人会出现在名字里的标点,意外造出了这个网络的第一个杀手级应用。 - [范式:1NF → BCNF,配例子](https://techtree.dylandang.dev/zh/posts/era-1-normal-forms/): Codd 的建表规则——每种异常长什么样、下一个范式怎么修它、以及什么时候为了性能故意打破规则。 - [三次握手,一包一包拆开看](https://techtree.dylandang.dev/zh/posts/era-1-tcp-handshake/): 为什么 TCP 开连接恰好需要三个包,SYN 和 ACK 位到底在做什么,以及初始序号一旦可被预测,为什么就演变成了一场安全灾难。 - [TCP/IP:连通一切的协议](https://techtree.dylandang.dev/zh/posts/era-1-tcp-ip/): 两位工程师在酒店大堂,一个不可能的问题:让任何网络能与任何其他网络通话。Cerf 与 Kahn 1974 年的论文,如何成为互联网的地基。 [基础文章] - [Diffie-Hellman:让 RSA 成为可能的密钥交换](https://techtree.dylandang.dev/zh/posts/era-1-diffie-hellman/): 在 Rivest、Shamir、Adleman 造出那把锁之前,Whitfield Diffie 和 Martin Hellman 已经证明了这把锁可以存在。他们 1976 年的论文才是公钥密码学真正的起点。 - [数字签名:把公钥加密反着用](https://techtree.dylandang.dev/zh/posts/era-1-digital-signatures/): 你用私钥签,任何人都能用公钥验。这一点不对称,支撑着软件更新、TLS 证书、git 提交,以及每一个必须在不信任信道的情况下信任代码的系统。 - [RSA 加密:光天化日之下的秘密](https://techtree.dylandang.dev/zh/posts/era-1-rsa/): Rivest、Shamir、Adleman 解决了一个看似不可能的问题——让陌生人在不事先共享秘密的情况下进行安全通信。 [基础文章] - [RSA 的数学,一行一行](https://techtree.dylandang.dev/zh/posts/era-1-rsa-math/): 欧拉定理、模逆,以及为什么 `(m^e)^d ≡ m (mod n)` 真的成立——把 RSA 那篇文章里一个代码块带过的数学,完整走一遍。 - [为什么 TCP 被拆成了 TCP 和 IP](https://techtree.dylandang.dev/zh/posts/era-1-tcp-ip-split/): 最早的 TCP 是一个同时负责路由、可靠性、寻址的协议。1978 年 Jon Postel 主张把它拆成两个,才解锁了 UDP、实时视频、沙漏架构,以及之后的几乎一切。 - [查询优化器:SQL 到底是怎么跑起来的](https://techtree.dylandang.dev/zh/posts/era-1-query-optimizer/): 你写你想要什么,数据库决定怎么做。走一遍优化器如何解析、改写、估算、并规划一条 SQL 查询——以及为什么同一条查询周一很快、周五很慢。 - [ACID,一个字母一个字母看](https://techtree.dylandang.dev/zh/posts/era-1-acid/): 数据库到底是怎么兑现 Atomicity、Consistency、Isolation、Durability 的——预写日志、MVCC、锁调度,以及那个让大多数存储栈至少丢过一次脸的 fsync 问题。 - [端到端原则:互联网为什么是故意"笨"的](https://techtree.dylandang.dev/zh/posts/era-1-end-to-end-principle/): Saltzer、Reed 和 Clark 1984 年的论文把让互联网能工作的那个设计决定写成了原则——把智能放到两端,把中间留得笨,然后看着它比所有比它聪明的网络活得更久。 - [TCP 拥塞控制:从 Nagle 到 BBR](https://techtree.dylandang.dev/zh/posts/era-1-tcp-congestion-control/): 四十年一直在回答同一个问题——当你看不见自己要经过的那张网络时,你该以多快的速度把包发出去? ## 时代 II:文档共享 (1989 - 1994) - [HTTP: The Protocol That Delivered the Web](https://techtree.dylandang.dev/zh/posts/era-2-http/): Tim Berners-Lee's simple request-response protocol turned the internet into a global hypertext system. [基础文章] - [CGI: The First Dynamic Web](https://techtree.dylandang.dev/zh/posts/era-2-cgi/): A simple standard let web servers run programs instead of just serving files — turning static pages into interactive applications and opening the door to everything that followed. [基础文章] - [SSL/TLS: Securing the Web](https://techtree.dylandang.dev/zh/posts/era-2-ssl/): Netscape needed online shopping to work. That meant encrypting HTTP — so two engineers built the protocol that now protects every connection on the internet. [基础文章] - [The URL: Addressing Everything](https://techtree.dylandang.dev/zh/posts/era-2-url/): Berners-Lee's third invention gave every resource on earth a single, stable name — and turned the web from a collection of documents into a navigable space. [基础文章] ## 时代 III:交互与电子商务 (1995 - 2000s) - [JavaScript: 10 Days That Changed the Web](https://techtree.dylandang.dev/zh/posts/era-3-javascript/): Brendan Eich's rush job became the world's most ubiquitous programming language. Here's how. [基础文章] - [CSS: Separating Style From Structure](https://techtree.dylandang.dev/zh/posts/era-3-css/): Cascading Style Sheets ended the era of font tags and gave designers a real language for visual presentation. [基础文章] - [Cookies: Giving HTTP a Memory](https://techtree.dylandang.dev/zh/posts/era-3-cookies/): Lou Montulli's small text files solved HTTP's statelessness problem — and accidentally created the infrastructure for login sessions, shopping carts, and the ad-tracking economy. [基础文章] - [The DOM: Making Web Pages Programmable](https://techtree.dylandang.dev/zh/posts/era-3-dom/): The W3C's Document Object Model turned static HTML into a living tree that JavaScript could read, modify, and rebuild — the API that made the interactive web possible. [基础文章] - [PageRank: The Algorithm That Organized the Web](https://techtree.dylandang.dev/zh/posts/era-3-pagerank/): Two Stanford grad students asked a simple question — what if a link is a vote? — and built the algorithm that made the web's infinite library searchable. [基础文章] ## 时代 IV:规模难题 (2000s - 2010s) - [REST: Architecture for the Scalable Web](https://techtree.dylandang.dev/zh/posts/era-4-rest/): Roy Fielding's dissertation formalized the architectural style that would become the standard for web APIs. [基础文章] - [MapReduce: Thinking in Parallel](https://techtree.dylandang.dev/zh/posts/era-4-mapreduce/): Google's programming model for processing massive datasets across thousands of machines changed how we think about distributed computation. [基础文章] - [Git: Distributed Version Control for the Angry Finn](https://techtree.dylandang.dev/zh/posts/era-4-git/): Linus Torvalds built Git in two weeks out of frustration, and accidentally created the tool that powers all modern software development. [基础文章] - [OAuth: Delegating Trust](https://techtree.dylandang.dev/zh/posts/era-4-oauth/): The authorization framework that lets you 'Sign in with Google' solved the password-sharing problem and enabled the platform economy. [基础文章] - [V8 & Node.js: JavaScript Breaks Free](https://techtree.dylandang.dev/zh/posts/era-4-node/): Google's V8 engine made JavaScript fast. Ryan Dahl's Node.js put it on the server. Together they unified web development and created the npm ecosystem. [基础文章] ## 时代 V:信任与中心化 (2008 - Present) - [Blockchain: Trust Without Trustees](https://techtree.dylandang.dev/zh/posts/era-5-blockchain/): Satoshi Nakamoto's Bitcoin whitepaper introduced a mechanism for consensus without central authority — and sparked a revolution in decentralized systems. [基础文章] - [TypeScript: JavaScript That Scales](https://techtree.dylandang.dev/zh/posts/era-5-typescript/): Microsoft's typed superset of JavaScript brought static analysis to the most dynamic language on earth. [基础文章] - [Docker: Ship the Whole Machine](https://techtree.dylandang.dev/zh/posts/era-5-docker/): How containerization solved 'works on my machine' and transformed software delivery forever. [基础文章] - [The Transformer: Attention Is All You Need](https://techtree.dylandang.dev/zh/posts/era-5-transformer/): A 2017 paper from Google replaced recurrence with self-attention — and created the architecture behind GPT, BERT, and the modern AI revolution. [基础文章]