历史中第一个网页

266 阅读11分钟

JS 为什么有很多让人抓狂的特性?

让人奔溃的JS |w

JavaScript 到底和 Java 有什么关系?

JS 是谁发明的? JS 的发明只用了一周?

互联网厂商的爱恨情仇?(bushi)

...

了解 Js 的曾经岁月,不仅能让你听到一段有趣的往事,也能让你更加全面,客观地认识 Javascript 的设计,让你明白 JS 的粗糙与细腻。

如今的 JS 不仅可以运行在 浏览器的环境中,也可以脱离浏览器运行在 nodejs 中,但在他诞生的最初时期,不过是为了优化浏览器用户体验的小道具。

因此,要说起 JS 的诞生,首先应该聊聊他的第一任老板 --- 浏览器

计算机快速发展

1950 年,拥有电视的家庭都凤毛麟角,但已经有计算机了。

不过那个时候的计算机体积格外庞大,大到要霸占整个房间。

但总有一些科学的先驱者推动者推动着历史的滚轴,1960 年,计算机的性能得到大的突破,全球各个科学机构都认为,如果这些机器可以相互连通,那将会让计算机的价值得到质的飞跃。

APPANET 阿帕网是人类历史上第一个成功的网络连接计划,1969 年,从 UCLA(美国加州大学洛杉矶分校)发出了第一条通过网络发送的消息到 SRI(斯坦福研究院)。

后来,这种网络逐步发展,联通了全球各个大学与研究中心,我们把他称之为互联网。但那个时候的互联网只有大学与机构的研究人员,学生和私人企业才可以使用,人们在日常生活中是完全接触不到的。

历史上第一个网页

直到 1990 年,世界上并没有浏览器,更不用说网页,自然也是没有。

一位叫做 Tim Berners-Lee 的科学家做了一件具有跨时代意义的事情,为了方便后续的描述,我们姑且亲切地称他为小李子。

Tim Berners-Lee | small

当时人们传递文档资料,都是一踏厚厚的纸作为载体,小李子心生一计,既然可以通过互联网在计算机上传递数据,能不能 发明一种计算机软件,直接在电脑上就可以浏览和传递文档,又快又方便。

于是他开始着手发明这种软件,请问如果你们是小李子,你需要发明哪些东西才能利用计算机传递二进制数据的方式来分享文档?

思考:

首先肯定得定义传递数据的格式!否则不同的人有不同的写法,那么无法用一个确定的逻辑进行统一的解析。

小李子定义了一种文档书写的语法,称之为 HTML 。 HTML 的全称是 HyperText Markup Language。

我来好好给你解释解释,HyperText 翻译成咱们的话就是 超文本 ,所谓的超文本,就是一种功能更加强大的文本,比如说,你可以在一个文本里链接另外一个文本,把各个文本相互连接起来,形成一个庞大的体系。除此之外,这个文本展示的内容不局限于文字,还可以有更多形式的展示。

超文本 |w

至于 Markup ,表明了这个语法的模式,是一种 标记 的模式,具体来说,就是用不同的标签来确定这段文本的作用以及通过标签之间的位置和嵌套关系,来表明这些数据之间的位置关系。所谓的 Language 就是说,这是一种确定的规则,仅此而已

只有数据的格式还不够,还要规定发送和接受数据的具体方式。🤔

又是一个关键!

按照 HTML 的语法写好文件,想要把它发送出去,就要 规定发送的方式 。对于接收方也要一个确定的接收方式 。为了此目的,小李子还发明了 HTTP 协议 ,这个 HTTP 其实就是 HyperText Transfer Protocol ,用咱们的话来说就是超文本传输协议

超文本我已经给你解释过了,所谓的协议其实就是双方都遵守的一个确定的规则。HTTP 发明的目的,就是提供发布和接收 HTML 数据的规则

但如今的 HTTP 比之当初复杂了不少,还在不断的进化中,这又是另外一门学问了,不过你们只需要理解 HTTP 诞生的目的即可。

我们已经确定了数据的格式和数据传输接收的方式,所以从数据的角度我们已经可以实现目的了。

但你忽略了一个细节,就是这些数据需要一个程序来接收,发送,解析展示,这个程序其实就是浏览器

所以我们可以这样理解网页:

浏览器这个程序,通过 HTTP 协议 收发数据,然后通过一个语法解析器把数据解析成好看的页面,

世界上第一个这样的浏览器程序,就是小李子发明的,不过世界上第一个浏览器功能很少,而且只能运行在操作系统的终端里,通过命令行进行操作。

但它绝对具有着划时代的历史意义。顺便一提,伯纳斯李把这种浏览器应用程序称之为 www , world wide web,第一个浏览器的名字就叫 www, 我们把它叫做万维网,小李子是 html, http, 万维网的创始人。

小李子是值得我们尊敬和感激的人,他为我们如今的生活做出了巨大的贡献,而且,他为他发明的 html,http 和浏览器没有申请专利,他把他无偿的提供给了世界。毫不客气的说,他是一个时代的缔造者,他是一个浪漫的科学家。在这个追名逐利的时代,他是一位令人敬佩的勇者。如果他向全世界收取专利费,他将是世界首富。

这是一段伦敦奥运会的视频,视频中的正是伯纳斯李,场馆内的晶体管组成了一段话

This is for everyone。

浏览器的快速发展

1992 年,又出来一位了不得的人,叫做 Marc Andreessen,马克安德森,我们给他一个亲切的称呼,小马。

小马是美国国家超级电脑应用中心(NCSA)的一位计算机科学家。他在接触了了 www 后,发明了世界上第一个可以显示图像的浏览器 Mosaic(马赛克),没错,之前的浏览器只能显示文字。

马赛克浏览器更加易于使用,不局限在命令行而且更加的 beautiful,它大概长这个样子:

MOSAIC浏览器

这种好用的软件,让浏览器一下子变得火热起来,任何拥有 PC 的人几乎都想使用浏览器,而浏览器也让更多的人有能力去使用互联网强大的功能。

隔年,1994,小马从 NCSA 组织离开,自己创办了一家公司,叫做 NetScape 网景公司,这个公司在接下来的十几年都相当的活跃,你且听我道来。

由于马赛克浏览器的版权属于 NCSA 组织,小马创立公司后立刻发明了自己的第二款浏览器,起名为 Netscape Navigator。 这是世界上第一款面向普通用户的浏览器,取得了前所未有的成功和反响。

JS 诞生

计算机从 1960 年到 1994 年,已经有了很大的发展,不再是那个庞然大物,富裕的家庭也可以购买自己的 PC,因此计算机从科学仪器已经走入了群众市场。而浏览器正是计算机软件市场中的一颗新星。 各大计算机公司都想在浏览器的发展中分到一杯羹,因此展开了一段浏览器大战。

1995 年,马赛克浏览器的代码版权几经转折,从 NCSA 的手里跑到了 Microsoft 微软公司中,微软利用马赛克浏览器的代码迅速构建了自己的第一款浏览器 IE 浏览器。

此时,浏览器的市场越来越大,用户越来越多,当然需求自然就变多了。用户在使用的过程中,有这样一个现象:有些用户忘记填写用户名,就点击了发送按钮,当时的网速还很差,用户经过漫长的等待,得到一个登陆失败的提示,这样的情况还并不少。因此不能把所有的逻辑全部交到服务器进行处理,浏览器端也应该做一些简单的逻辑,比如检查用户是否填写每一栏应该填写的信息。

于是 Netscape 网景公司的程序员 Brendan Eich 只用了十天就发明了一款可以在浏览器中运行的脚本 ,叫做 livescirpt, 为了让这个脚本语言的知名度提高,网景公司与 Sun 公司(Java 语言的发明者和所有者)达成了商业合作,livescript 改名为 Javascript。微软公司见网景公司发明了 JavaScript, 于是他也紧跟其后,开发了 Jscript 作为 IE 浏览器的脚本。

1996 年 3 月,网景公司的 Navigator2.0 浏览器正式内置了 JS 脚本语言

什么叫内置脚本

好问题!这就不得不不说说什么叫做编程语言了。

编程语言可以看成两部分,语法运行

我们平时写代码,就是按照一个固定的语法,去写确定格式的文本

而代码的运行 依赖于一些执行它的程序(语言的解释器,编译器...)。

对于脚本语言而言,需要一个解释器把他转换成计算机可以识别的二进制指令

而所谓的浏览器内嵌一个语言,就是在浏览器的程序中,添加了一段脚本的解释器,怎么样,这下你大概可以理解了吧。

浏览器大战

从 1995 年开始,Netscape Navigator 已经不是上网冲浪的唯一选择,还可以选择微软的 IE。微软和网景公司的大战也就此拉开帷幕,两家公司都在为获得更多的用户和市场开发产品。

两个公司的战争愈演愈烈,这微软还真是坏啊,制作了一个大大的 IE 浏览器的 LOGO ,悄悄地放到了网景公司的草坪上。可给网景气坏了,他们砸烂了那个 E,并把网景公司的吉祥物恐龙放到了那个字母上方。

ie

1996 年 11 月,网景公司决定将 JavaScript 的制定权交给国际化标准组织 ECMA(European Computer Manufactures Association),希望以这种方式来抗衡微软。

ECMA 接受了这个提案,成立了 39 号委员会 负责制定和审核 JavaScript 的标准,该委员会的成员主要由业内大公司派出的工程师组成。

但网景注定斗不过微软,从 1997 年起,微软开始把 IE 和 Windows 操作系统捆绑,这就导致了大批的用户走向 IE,四年内,IE 获得了 75% 的市场份额,到 1999 年甚至达到了 99% 。2001 年,windowsXP 登场,携带着 IE6 浏览器。IE6 浏览器有了质的突破,因为在 IE6 浏览器的代码中,将浏览器的渲染引擎和 JS 引擎分开了。这使得 IE 浏览器可以运行更加复杂的 JS 脚本。到 2003 年,网景公司终于破产,退出了历史舞台。网景公司开放了 netscape navigator 的源代码,也算为后来的浏览器发展也算作了最后一笔贡献。

2008 年,是人类历史里浓墨重彩的一年,发生了两件大事。

第一, 在中国北京举行了奥运会。

第二谷歌浏览器问世。

之所以说谷歌 Chrome 浏览器对于整个 Web 世界无比重要,是因为它带来了一个强大的 JS 引擎 —— V8 引擎。v8 引擎性能很高,而且可以脱离浏览器独立运行,着也为 JS 的另一片净土——Nodejs 的诞生埋下了伏笔。

IE 浏览器不再是市场霸主,谷歌浏览器用它出色的性能收获了大批的用户。

至此,浏览器大战也算是暂时的落下了帷幕,但一定也是暗流涌动。

商业的斗争是浏览器发展的助推剂,人们从不满足的需求是技术革新的动力,科学家用自己的智慧和努力加速着历史的齿轮,人类文明的历史中,有太多为权力而大打出手的斗争。有贪得无厌的暴君,有持剑夕阳的勇士,信息和商业的战场,也是无声的哭泣和讴歌。