Web技术的前世今生(一)

我的名字叫JavaScript,你也可以喊我Js。在说我的故事之前,我觉得有必要先介绍下我的大哥HTML,和大嫂CSS。没错,那个叫Java的家伙不是我的亲戚,我们隔着好几条街区呢。(来自知乎的神回复:Java和Javascirpt就好比“雷锋”和“雷峰塔”的关系)

我大哥算是整个家族的元老级人物,在上世纪90年代初,它被一帮科学家创造出来为了方便他们看文档、传论文。连这帮缔造者自己都没想到,我大哥的出现在之后改变了整个世界。

起初,我大哥的日子还是蛮逍遥的。它用自己强大的能力将文字和图片构建成一个个文档(Document),并放在服务器上供大家去访问浏览。科学家们吃着火锅唱着歌就把自己的论文发表在了网络上,大哥也觉得找到了一份钱多事少离家近的工作,一切看起来都很美好。

然而人怕出名猪怕壮,不久,大哥的名声就传出了学术界,越来越多的人通过HTML大哥向世界展示他们自个儿,还给大哥构建出的文档起了个时髦的名字:网页。

人类是很贪婪的,平淡无奇的网页很快就让他们厌倦了,“文档标题是不是可以变大一些?”,“是不是可以调整不同段落的字体颜色?”⋯⋯很显然,他们希望自己的网页看起来更加与众不同。于是,HTML大哥一次次的被赋予更加强大的能力,新的功能虽然在一定程度上满足了人类的需求,但这也给大哥留下了后遗症,它所构建的网页逐渐变的臃肿不堪。

就在大哥人生最低潮的时候,我的大嫂走进了它的生活(1996年)。如果要用一个字形容我的CSS大嫂,那就是——美。自从它来到我们家,大哥构建的网页要换字体、变颜色、加边框、添背景⋯⋯这些活统统被大嫂一手揽了过去。为这事,大哥乐了好些日子,之前的颓态也一扫而空了。自此,大哥又过上了只负责赚钱养家,由嫂子负责貌美如花的幸福生活。

早期的静态网页

直到有一天,大哥接到一项特殊的任务,一位年轻的爸爸想给自己患有抑郁症的孩子制作一个网站,希望网页里的天空每天都可以更换一种颜色。听起来很合理的诉求却难到了我大哥,它和大嫂展开了讨论:

“Dear,让我们帮帮他们,好吗?”,大嫂恳切的说道。

“我也很想这样做,但是,Sweetie,你是知道的,我和你的能力仅限于构建静态网站,只要访问相同的网址,返回的页面内容始终是不变的。”

“嗯⋯⋯要么,我们去问问隔壁镇上的老C头(大家都这样称呼资历较老的C语言)吧,它见多识广,指不定能有好主意”。大哥补充说道。

两天后,它们见到了正在和C++下棋的老C头,听完大哥的叙述,老C头沉思片刻:“这个好办,不要让用户直接访问你了,我和C++都有判断当前日期的能力,让用户请求先到达我们生成的程序,你只需要告诉我们网页长什么样子,我们在需要改变颜色的地方做点处理,再重新拼接成正确的页面返回就行了。”C++老爹在一旁连连点头。

按照老C头说的办法,有心的爸爸很快制作出了天空颜色会变的动态网页,他从孩子脸上看到了久违的笑容。

(猿知原味注:老C头阐述的方法是最早的动态网页实现方案——CGI技术。除了C/C++之外,CGI程序还可以用PERL、Java、Python、Shell等进行编写)

动态网页很快成为了一种潮流,众多站点加入了访问计数、表单提交等需要网站服务器端进行逻辑处理的功能。这一下老C头可不乐意了,和C++老爹抱怨起来:

“之前我就是想帮个忙,怎么帮着帮着还把我自己套进来了?作为一名绅士,你知道让我去输出那一大堆乱七八糟的HTML字符串是件多么粗鲁的事吗?”

“别提了,老C头,都怨你出的馊主意,每个请求过来我都得用一个新的进程来处理,这么些年来大家一直称赞我的性能高,这回怕是要晚节不保了。”

“你的性能高?那意思是我的性能不高喽?”

“这还用说嘛,看我们的名字不就很清楚了么?”

“@#&%$⋯⋯”

两个倔老头又陷入了日常的争论当中。好在没过多久,一个叫PHP的家伙诞生了,它的出现彻底消除了老C头的满腹牢骚,因为这家伙迅速接过老C头的活,成为了开发动态网站的主流。

我和PHP的关系还不错,一方面是因为我们年纪相当(1995年),另一方面PHP和我大哥是老铁,它经常来我家串门,来和大哥讨论某个动态页面应该如何构建,哪些部分属于应由大哥负责的静态内容,哪些部分属于需要它来标记的动态内容。

总之啊,PHP和我们这一家子相处的算是其乐融融。

(猿知原味注:PHP相较CGI,不仅更好地组织了Web页面的内容,提高了开发效率和可维护性,而且执行效率也比CGI更高。在这之后,ASP和JSP等网站动态脚本语言也相继诞生)

故事讲到这,终于轮到我出场了。在我出生之前,一个网站所有逻辑层面的任务都会由我大哥承包给老C头、PHP等它们那帮跑在服务器上的家伙。比如你要注册一个邮箱,账号输入时一不小心将@敲成了#,只有当注册账号被发送到服务器上经过那些家伙校验之后才能发现错误,它们再将错误信息返回到你面前又需要花费一些时间,在那个还在用28.8kbit/s的"猫"上网的年代,这段被浪费的时间很可能长达好几十秒。

我的出现大大改善了这种糟糕的上网体验。我完全运行在客户端(关于这一点,最近几年我似乎有些跑偏),那些没必要交给服务器的逻辑运算统统由我负责。有了我之后可把我大哥乐坏了,它再也不用因为一个简单的表单验证去麻烦它的PHP老弟,或者去面对老C头鄙夷的眼神了。自此,我算是在这个家里站稳了脚跟。

时间过的很快,一晃就跨过了千禧之年,在那前后,大哥带着我接了很多有趣的活,有在车库里创建的搜索引擎,有在大学宿舍里创建的社交网站⋯⋯同它们一样,我要讲的故事也刚刚开始。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容

  • 0 系列目录# WEB请求处理 WEB请求处理一:浏览器请求发起处理 WEB请求处理二:Nginx请求反向代理 本...
    七寸知架构阅读 13,869评论 22 190
  • 架构师必须知道的26项PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供...
    meng_philip123阅读 6,045评论 1 161
  • 谈论WEB编程的时候常说天天在写CGI,那么CGI是什么呢?可能很多时候并不会去深究这些基础概念,再比如除了CGI...
    __七把刀__阅读 2,177评论 2 11
  • 老男孩Linux运维读书笔记 HTTP服务基础 用户访问网站基本流程 1,客户端输入网站地址;2,本地缓存或hos...
    Zhang21阅读 725评论 0 3
  • 007系列电影的同学都知道,这部电影有一个特点,就是序幕非常长,简直就可以当一部电影了,序幕的结尾常常是詹姆斯·邦...
    韦韦ViVi阅读 22,186评论 1 7