Gopher - 万维网之前

Gopher是一个互联网上使用的分布型的文件搜集获取网络协议。它是1991年由明尼苏达大学的保罗·林德纳(Paul Lindner)和马克·麦卡希尔发明的。
Gopher最初的设计目标与万维网类似:共享文档,今天的万维网几乎已经替代了Gopher。但Gopher协议还提供了一些万维网先天缺乏的功能,比如在Gopher中所有信息都以层级形式存储,这被认为是存储大量信息的最好方式之一。
万维网在1991年被发明,由于耗用带宽较少,Gopher网络当时仍然是非常流行和制作精良的。1993年2月,明尼苏达大学宣布他们将对Gopher的使用收取执照费,这就一部分的减少了Gopher服务器数量。一些人相信这是Gopher变成互联网历史的原因。

很多人相信Gopher的衰微实际上是它那有限制的结构造成的,这种结构使得它没有自由形态的HTML网页灵活。使用Gopher时,每个文档都已有一个预定义的格式和类型,一个Gopher用户必须通过一个服务器定义的系统菜单导航进某一个特定的文档。很多人不喜欢Gopher系统中这种人为制造的菜单和文件的区分,而Web网络上使用的超文本协议和交互式应用程序显得更为开放灵活。

今天的Gopher

在2004年,世界互联网上仍然运行着少数Gopher服务器,如美国政府和史密森尼学会仍运作各自的Gopher,他们仍然被协议狂热者维护着。
2002年6月,Gopher协议在Internet Explorer的补丁中已被禁用,仅仅因为微软宣称发现其中有一个安全漏洞;通过编辑注册表可以重新启用Gopher协议。

WorldWideWeb(1990)- 万维网

世界上第一个网页浏览器及所见即所得网页编辑器,由万维网的发明人蒂姆·伯纳斯-李开发。image.png
1990年的圣诞节,伯纳斯-李制作了要让网络工作的所有必要工具:第一个网页浏览器WorldWideWeb(同时也是网页编辑器)和第一个网页服务器。除了网页浏览器,蒂姆·伯纳斯-李的另一个才华横溢的突破是将超文本嫁接到因特网上。在他的《编织万维网》一书中解释,他曾多次向技术社群的成员暗示这两种技术结合是可行的,但是却没有任何人接受他的建议,他最后只好自己解决了这个计划。他发明了三项关键技术:

  • 一个全球网络资源唯一认证的系统,统一资源标志符(URI)
  • 超文本标记语言(HTML)
  • 超文本传输协议(HTTP)

WorldWideWeb:
image.png

蒂姆·伯纳斯-李CERN工作时使用的NeXT电脑是世界上第一个网页服务器(First Web Server):
1600px-First_Web_Server.jpeg

同时期除WorldWideWeb外,还有鲜为人知的ErwiseViolaWWW

ViolaWWW(1991)

ViolaWWW是万维网(WWW)第一个流行的浏览器,目前已停止开发。其首次在1991/1992年的UNIX操作系统上发布,并成为受万维网发源组织CERN所推荐的浏览器,是第一个添加扩展功能的浏览器,如嵌入式脚本对象、样式表和表。早期版本在CERN获得了诸多好评。但其最常用浏览器的地位最终被Mosaic浏览器取代。
Viola由魏培源在1991年开发,他也是加州伯克利大学的eXperimental Computing Facility(XCF)研究小组成员之一。
魏培源出生于台湾。他1986年毕业于柏克莱高中。他在加州大学柏克莱分校接受了高等教育,并且是学生俱乐部XCF的成员。1991年他在写给蒂姆·伯纳斯-李的邮件中提到将Viola对象嵌入HTML文件。
image.png

与Mosaic竞争

虽然ViolaWWW打开了万维网的大门,但由于只能局限在X Window系统上执行,意味着它无法与Mosaic竞争,后者为将万维网带入主流的浏览器。除此之外,Mosaic更容易安装在大多数人使用的电脑上。虽然Mosaic最初只为UNIX开发,但很快地被移植到Microsoft Windows,这是ViolaWWW从未执行过的平台。

NCSA Mosaic(1992)

David Thompson向NCSA的软件设计小组展示了ViolaWWW浏览器。这启发了马克·安德森埃里克·比纳在UNIX的X Window编写了NCSA Mosaic,名为xmosaic。

NCSA Mosaic,是一个早期普及的网页浏览器,也是互联网协议如FTPNNTPGopher)的客户端,浏览器因支持多种互联网协议而命名。其直观的接口、可靠性和简易安装,因此在当时大受欢迎,也是第一个可以在文字中嵌入图片,而不是在单独的窗口中显示图片的浏览器。虽然经常被误认为世界上第一个图形接口浏览器,但事实上比Mosaic更早的还有WorldWideWeb、鲜少人知的Erwise和ViolaWWW。

Mosaic于1992年底由美国伊利诺伊大学厄巴纳香槟分校的NCSA开发。NCSA于1993年发布浏览器,并于1997年1月7日正式停止发展和支持

Mosaic不是第一个Windows浏览器,而是Thomas R. Bruce的鲜为人知Cello。在Windows版本推出之前,Mosaic的Unix版本就已经相当知名了,除了可以在文字中嵌入图片,而不是显示在单独的窗口之外,其功能与ViolaWWW相似,不过Mosaic是首次由职业程序员的团队所编写浏览器,对于初学者来说相当可靠和易于使用

1992年11月,世界上只有仅仅26个网站,每一个网站都受人注目。1993年,Mosaic推出了一个叫做What’s New的页面,几乎每天都会提供给大家一个全新网站的链接。这段期间,互联网的使用率正在由学术界和大型工业研究机构之外迅速普及。然而,这正是Mosaic浏览器的易用性推动了网络爆发性的成长,到了1995年8月,网站数量已经超过了一万个,1998年达到了数百万个网站数量

在Web的第一世代,提姆·柏内兹-李使用基于Unix的服务器和浏览器原型,创建了统一资源定位符(URL),超文字传输协议(HTTP)和HTML标准。一些人意识到Web可能比Gopher更好。

在第二世代,马克·安德森和埃里克·比纳在伊利诺伊大学开发了NCSA Mosaic浏览器。几百万人突然发现Web可能比性爱还要棒。

在第三世代,安德森和比纳离开NCSA,创立了Netscape Navigator

Spyglass Mosaic(1994.5)

Spyglass公司(英语:Spyglass, Inc.)是位于伊利诺伊州香槟的互联网软件公司。该公司成立于1990年,是伊利诺伊大学厄巴纳香槟分校一个分支,旨在将国家超级电脑应用中心(NCSA)的技术商业化。以其开发专有版本的Mosaic网页浏览器而闻名。

1994年5月,Spyglass公司以数百万美元的价格获取NCSA的Mosaic浏览器许可证,旨在开发自己的网页浏览器
,但从未使用任何NCSA Mosaic源代码。Spyglass提供了三十天的试用版下载,但实际上并没有将产品出售给终端用户。相反,它向代理商(例如O’Reilly & Associates)提供未经修改的Spyglass Mosaic或基于Spyglass代码库的浏览器(CompuServe、IBM和Ipswitch)。使用Spyglass Mosaic代码库许可证下开发的浏览器还包括微软的Internet Explorer

Netscape Navigator(1994.10)

1994年,Mosaic的主要开发人员马克·安德森创立了Netscape公司,并雇用了许多原来的NCSA Mosaic开发者用来开发Netscape Navigator,该公司的目标是取代NCSA Mosaic成为世界第一的网页浏览器。在四个月内,已经占据了四分之三的浏览器市场,并成为1990年代互联网的主要浏览器。

JavaScript

在 1995 年微软步步紧逼的背景之下,网景预见到网络需要变得更动态。公司的创始人马克·安德森认为HTML需要一种胶水语言,让网页设计师和兼职程序员可以很容易地使用它来组装图片和插件之类的组件,且代码可以直接编写在网页标记中。Netscape 决定迈向未来,创造开发人员需要的这种语言。Netscape 首席执行官 Jim Clark 召来了一位名叫 Brendan Eich 的天才程序员,后者的构想是在浏览器中实现 Scheme 编程语言。Scheme 在学术界广受欢迎,但在市场上并没有太大的吸引力。Eich 认为它可能非常适合网页编程。后来他将 Scheme 称为“令我心动的那种美丽的研究语言”。

但事情还有点复杂:Netscape 已经从 Sun Microsystems 获得了 Java 许可。彼时人们认为 Java 才应该是浏览器使用的语言。不幸的是,Java 对于当时主流的低速网络来说太沉重了。开发人员必须编译他们的代码,然后将代码提供给浏览器。如果你的代码和用户在其机器上使用的 Java 版本不一样,那就自求多福吧。这意味着用户需要耐心地通过在今天看来极为缓慢的连接下载体积足有 10 MB 或更多的 Java 虚拟机。那时一个网页及其包含的所有非 Java 内容可能不超过几百 KB;运行 Java 的开销太大了。

相比之下,Eich、Netscape 的 Marc Andreessen 以及 Sun 的 Bill Joy 都认为这个世界需要一种类似BASIC 的语言,这样的语言非常适合连编译器是什么都不知道的开发人员。难道创建网页的开发者必须了解public static void main(String[] args) 的含义吗?Eich 不这么认为。

于是他们决定创建一种新的编程语言,并在Netscape Navigator 2.0 中发布。作出这个决定的那天离发布只剩十天了。Eich 只用了10 天时间就创建了LiveScrip。(正如他多年后回忆的那样,“我就没睡过什么觉。”)一夜之间,开发人员就可以为他们的网页添加逻辑了。同年12月,Netscape Navigator 2.0 Beta 3中部署时被重命名为JavaScript,当时网景公司与Sun电脑公司组成的开发联盟为了让这门语言搭上Java这个编程语言“热词”,因此将其临时改名为JavaScript,日后这成为大众对这门语言有诸多误解的原因之一。

标准化

1996年11月,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准。1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262。JavaScript成为了ECMAScript最著名的实现之一。除此之外,ActionScriptJScript(微软)也都是ECMAScript规范的实现语言。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的脚本语言来推广和宣传,但是JavaScript具有非常丰富的特性。

Internet Explorer(1995.1)

感受到Netscape Navigator浏览器的威胁,微软认为自己没有时间从零到有的开发出一个浏览器出来。

微软在1994年11月欲收购BookLink浏览器,但最终落入了AOL手中,之后微软与Spyglass的谈判获取了进展。1995年,微软从Spyglass获取Mosaic许可证成为了Internet Explorer 1基础,该版本作为Windows 95Microsoft Plus!软件包的一个附加组件发布。根据协议规定,Spyglass将获得Mosaic的基本季度许可证费用以及微软的Internet Explorer收入。

微软随后将Internet Explorer与Windows捆绑在一起,因此(在IE上没有直接收入)只支付最低额度的季度许可证费。1997年,Spyglass利用合约威胁微软,最后微软赔偿了八百万美元达成和解[7][8]。

Internet Explorer 7(2006年10月18日发布)之前创建的Internet Explorer所有版本仍然保留着部分Spyglass代码。在这些版本的“关于”窗口包含这段文字“根据Spyglass公司的许可证协议散布”(Distributed under a licensing agreement with Spyglass, Inc.)。

浏览器大战

第一时期(1995~2002)为1998年微软公司的Internet Explorer取代网景公司的Netscape Navigator成为主要浏览器。
第二时期为2003年后Internet Explorer份额逐渐受到其他浏览器蚕食,包括Mozilla Firefox, Google Chrome, Safari和Opera。最终Chrome胜出。

浏览器内核

浏览器的内核是指支持浏览器运行的最核心的程序,分为两个部分的,一是渲染引擎,另一个是JS引擎。渲染引擎在不同的浏览器中也不是都相同的。

渲染引擎负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。JS 引擎则是解析 Javascript 语言,执行 javascript 语言来实现网页的动态效果。

最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。有一个网页标准计划小组制作了一个 ACID 来测试引擎的兼容性和性能。内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有 10 多种,但是常见的浏览器内核可以分这四种:Trident、Gecko、Blink、Webkit。
image.png