黎明之前:万维网与浏览器的诞生背景
在计算机科学的发展历程中,很少有发明能像万维网(World Wide Web)那样深刻地改变人类获取信息和相互交流的方式。当我们在浏览器地址栏中输入一串字符,转眼间便能看到远在万里之外的服务器传来的网页内容时,这种看似理所当然的便利背后,凝聚着数十年信息技术的积累与突破。本章将追溯至1989年至1991年间那段激动人心的岁月,探寻万维网与浏览器诞生的思想渊源与技术脉络,理解这一改变世界的发明如何从一个个看似不可能的念头中萌生、发展并最终走向成熟。
要理解万维网诞生的历史必然性,我们首先需要将目光投向更早的时期,回到互联网的前身——阿帕网(ARPANET)诞生的1960年代末。1969年10月29日,美国加州大学洛杉矶分校的一台计算机向斯坦福研究所的另一台计算机发送了第一条消息,尽管这条消息只是简单的单词“LOGIN”,而且传输在字母“G”之后就中断了,但它标志着一个新时代的开始。阿帕网由美国国防部高级研究计划局(ARPA)资助建立,其最初的设计目标是为军事研究机构提供一种能够在核战争等极端情况下保持通信的网络基础设施。这一目标的实现依赖于一种革命性的网络通信技术——分组交换(Packet Switching)。
分组交换的核心思想是将数据分割成较小的数据包(packets),每个数据包可以独立通过网络中的不同路径传输,最终在目的地重新组装成完整的数据。与传统的电路交换(Circuit Switching)不同,分组交换不需要在通信双方之间建立专用的物理连接,网络中的每个节点都可以动态地决定数据包的下一跳路径。这种去中心化的设计使得整个网络具有极强的容错能力——即使部分网络节点被摧毁,数据包仍然可以通过其他路径到达目的地。1974年,文特·瑟夫(Vint Cerf)和鲍勃·卡恩(Bob Kahn)发表了著名的TCP协议设计论文,提出了在分组交换网络上实现可靠数据传输的完整方案。1983年,阿帕网正式采用TCP/IP协议栈,这一事件被视为现代互联网的正式起点。
然而,在万维网诞生之前,计算机网络主要用于计算机之间直接的数据传输和远程登录,普通用户要获取存储在远端计算机上的信息,需要具备专业的技术知识,输入复杂的命令序列。这种使用门槛严重限制了信息技术的普及。正是在这样的背景下,一个在当时看来近乎理想主义的构想逐渐浮出水面——超文本(Hypertext)。
“超文本”这一术语最早由美国学者特德·尼尔森(Ted Nelson)于1965年提出。尼尔森将其定义为“非 sequential writing text”,即非顺序性的文本。与传统书籍中必须按固定顺序阅读的线性文本不同,超文本允许读者根据个人兴趣和需要,在不同文本单元之间自由跳转,每一个文本单元都可以通过“链接”(link)与其他相关单元相连。尼尔森构想的超文本是一个庞大的信息系统,他在1972年将其命名为“Xanadu”。在这个系统中,所有的文学作品、学术论文、注释和引用都被存储在一个统一的数据库中,用户可以通过链接在任意文档之间穿梭,每一个文档都可以同时显示多个来源的引用,用户可以即时访问引用的原始内容。尼尔森甚至提出了“双向链接”的概念,即链接是双向的,读者不仅可以顺着链接访问目标文档,还可以回溯到哪些文档曾经引用过当前内容。这种设计在当时的计算机技术条件下几乎是不可能实现的,但尼尔森为后来的万维网设计者提供了宝贵的思想源泉。
在尼尔森提出超文本概念的同时,其他研究者也在探索类似的信息组织方式。1980年,欧洲核子研究组织(CERN)的物理学家蒂姆·伯纳斯-李(Tim Berners-Lee)编写了一个名为“ENQUIRE”的程序,用于帮助研究人员追踪CERN内部庞大而复杂的人员和项目信息。这虽然是一个非常简单的数据库系统,但它首次让伯纳斯-李有机会思考如何在计算机中模拟人类社会的连接关系——人与人之间的协作、项目与文档之间的关联、不同研究小组之间的信息流动。ENQUIRE程序从未正式公开发布,但它是伯纳斯-李后来发明万维网的重要思想实验。
时间来到1989年,伯纳斯-李向CERN提交了一份正式的建议书,标题为《Information Management: A Proposal》。在这份只有薄薄几页的文档中,伯纳斯-李描述了他构想的“World Wide Web”系统。他在建议书中指出,CERN作为一个拥有超过8000名员工和承包商的庞大研究机构,面临着严重的信息管理问题——不同的研究小组使用不同的计算机系统,数据格式五花八门,新员工难以了解机构的组织结构,老员工难以追踪最新的研究成果。他提议建立一个全球性的超文本系统,允许用户在任意一台联网的计算机上访问任意类型的相关信息。这一提议最初并未引起太大的关注,CERN的管理层认为它只是一个“不错但不是优先”的项目。幸运的是,伯纳斯-李的直属上司迈克·森特(Mike Sendall)批准了他继续推进这一项目,并提供了必要的资源支持。
伯纳斯-李的万维网构想建立在三个核心技术支柱之上:统一资源定位符(URL)、超文本标记语言(HTML)和超文本传输协议(HTTP)。
统一资源定位符(Uniform Resource Locator)解决了如何在浩如烟海的互联网资源中精确定位的问题。每一个网页、每一张图片、每一段视频在万维网中都有且只有一个唯一的地址,这个地址由若干部分组成:协议名称(如http://或https://)、服务器域名或IP地址、端口号(可选)、文件路径以及查询参数(可选)。例如,当我们访问https://www.example.com/products/item?id=12345时,浏览器首先通过域名系统(DNS)将www.example.com解析为对应的IP地址,然后连接到该服务器的443端口(https的默认端口),请求路径为/products/item的页面,并附带查询参数id=12345。这种标准化的地址格式使得任何人都可以用一致的方式描述和访问互联网上的任何资源。
超文本标记语言(HyperText Markup Language)则是构建网页内容的基础。HTML是一种标记语言,它使用“标签”(tags)来描述文本的结构和语义。例如,`<h1>标题</h1>`表示这是一级标题,`<p>段落内容</p>`表示这是一个段落,`<a href="链接地址">可点击的文本</a>`表示这是一个超链接。与传统的字处理软件不同,HTML将内容与表现形式分离——HTML文档描述的是内容的结构和意义,而具体的呈现样式(如字体大小、颜色、布局等)则由级联样式表(Cascading Style Sheets,CSS)另行定义。这种设计理念极大地简化了网页开发,使得不具备专业排版知识的作者也能创建结构清晰、格式统一的文档。HTML从1990年的第一个版本发展至今,已经成为全球信息发布的事实标准。
超文本传输协议(HyperText Transfer Protocol)则定义了客户端(如浏览器)与服务器之间如何交换信息。HTTP是一种请求-响应(Request-Response)协议:客户端发送一个请求,包含请求方法(如GET用于获取资源,POST用于提交数据)、目标URL和附加信息;服务器处理请求后返回一个响应,包含状态码(如200表示成功,404表示未找到)、响应头部和响应正文。HTTP的设计遵循“简洁快速”的原则——每个请求都是独立的,服务器不需要记忆之前的请求状态,这种无状态(Stateless)特性使得HTTP服务器可以同时处理大量的并发请求。1991年,伯纳斯-李发布了HTTP的第一个版本(后来被称为HTTP/0.9),这是一个极其简化的协议,只支持GET方法和一个纯文本格式的响应。
1990年12月,伯纳斯-李在CERN的一台NeXT计算机上运行了世界上第一个Web服务器(info.cern.ch),并编写了世界上第一个Web浏览器(WorldWideWeb,后改名为Nexus)。这个浏览器同时也是网页编辑器,用户可以使用它创建和浏览网页。1991年8月,伯纳斯-李在一个面向全球互联网用户的公共邮件列表上宣布了万维网的存在,这一消息迅速传播开来,开始有越来越多的用户尝试使用这一新奇的技术。
在万维网诞生之前,学术界和军方已经开发了多种信息浏览与检索系统,它们为浏览器的出现做了重要的技术与思想准备。其中最为重要的是Gopher系统。1991年4月,即万维网正式发布之前,明尼苏达大学发布了一种名为Gopher的分布式文档检索系统。Gopher使用菜单驱动的方式组织信息,用户可以在层次化的菜单中选择感兴趣的主题,逐级深入直到找到最终的内容。每个Gopher服务器维护自己的内容目录,用户可以在不同的Gopher服务器之间自由切换,就像在一个巨大的图书馆中穿梭于不同的书架之间。Gopher迅速获得了广泛的应用,到1993年,全球已有超过10000个Gopher服务器。然而,Gopher是一个封闭的系统,不同服务器之间缺乏像超链接那样的直接关联,用户必须在菜单中一层层地浏览才能找到目标内容。万维网的出现以其更加灵活、更加直观的超链接机制逐渐取代了Gopher的主导地位,但Gopher在信息组织方式和分布式架构方面为万维网提供了重要的借鉴。
另一个值得关注的先驱系统是蒂姆·伯纳斯-李早年的ENQUIRE程序。尽管ENQUIRE从未被广泛使用,但它展示了用链接来表达任意类型关系这一核心理念。ENQUIRE中存储的不仅是文档本身,还有文档之间的关系——谁参与了某个项目、某个文档引用了哪些其他文档、某个主题与哪些关键词相关。这种关系型的信息组织方式深刻影响了伯纳斯-李后来设计万维网时对链接的理解。在万维网中,链接不再仅仅是两个文档之间的跳转路径,而是一种表达语义关系的方式——链接的语义由链接的创建者和目标内容共同决定。
回顾这一时期的探索历程,我们可以清晰地看到,万维网的诞生并非凭空出现的发明,而是建立在前人几十年思想探索和技术积累的基础之上的。分组交换技术为去中心化的网络通信提供了可能,TCP/IP协议栈实现了不同计算机系统之间的互联互通,超文本理论描绘了信息组织的新范式,而ENQUIRE、Gopher等先行系统则在实践中验证了各种技术方案的可行性。伯纳斯-李的伟大之处在于,他将这些分散的技术和思想有机地整合在一起,创造出了一个简洁、优雅、普适的系统架构。更重要的是,他选择了将万维网的技术标准完全开放,任何人都可以免费使用这些标准来开发服务器和浏览器,不申请任何专利,不收取任何费用。这种开放精神使得万维网在极短的时间内就获得了爆发式的增长,从CERN的一个内部项目成长为改变世界的全球性基础设施。
在第一章的结尾,我们已经看到了万维网诞生的思想渊源与技术基础。接下来,随着图形化浏览器的出现和互联网的商业化浪潮,万维网将迎来它的第一个黄金发展期。在那个激动人心的年代,无数创业者、技术极客和普通用户将共同见证一个全新数字世界的崛起。