导火线
1992年,有一家公司Nombas 开发了一种叫C--的嵌入式脚本语言,后来觉得名字比较晦气,最终改名为scriptEase.而这种可以嵌入网页中的脚本的理念,成为日后移动互联网蓬勃发展的一块重要基石。

第一次浏览器大战!爆发!!
1994年12月,网景通信公司发布了NetScape Navigator 1.0 ,
1995年微软公司发布了InterNet Explorer1.0 和 2.0.
紧随其后的是现在依然成为web服务器标准之一的Apache。当时它以Apache0.2的姿态出现在世人面前。而Html也发布了0.2版本,那一年,web技术的发展突飞猛进。

时光荏苒,从1995年左右开始,微软公司和网景公司为了抢占市场份额,分别对自家公司的浏览器的HTML做了扩展,不仅对当时正处于发展中的web标准化视而不见,还屡次出现了新增功能和特性却没有相关的文档说明的情况。以至于当时的前端开发者必须考虑兼容他们两家的浏览器。时至今日,兼容性这个问题仍然是前端工程师棘手的问题!!

初代JavaScript 诞生!!
1995年,当时工作在Netscape(网景)公司的布兰登(Brendan Eich)为解决类似于“向服务器提交数据之前的验证”的问题。在Netscape Navigator 2.0 与 Sun 公司练手开发一个称为 LiveScript 的脚本语言。为了营销便利,之后更名为JavaScript(目的是为了抱住当年最风光最流行最热门的JAVA这条大腿)

不要脸的小三
由于 JavaScript 1.0 大获成功,所以微软(Microsoft)当即决定进击浏览器行业。为此发布了IE3.0并搭载了一个JavaScript 的克隆版本。叫JScript。即我们现在使用的Javascript.(这样的命名是为了避免与NetScape产生利益纠纷。大概就类似于加多宝和王老吉吧)。

小插曲:
由于比尔盖茨是VB语言出身的,所以旗下所有的产品几乎都VB化一遍,由此也提供了VBScript。
目的是希望让开发者可以用VB来开发服务端语言,同时也用VB开发客户端脚本语言(和今时今日大热的Nodejs想法大体一致,想通过一门语言统领前后端,结局也是一致的)
但由于它是IE专属的客户端脚本语言,仅仅支持IE浏览器。所以结局可想而知

矛盾与冲突
在微软介入之后,有三种不同的Javascript版本同时存在(分别是scriptEase、JavaScript、JScript)。没有一个统一的标准,给当时的开发者带来巨大的挑战。随着业界担心的呼声增加,这个语言标准化已经势在必行!

ECMA
1997年,javascript 1.1 作为草案提交给欧洲计算机制造商协会(ECMA)。
由来此NetScaoe、Sun、微软、Borland 和 其他一些对脚本编程感兴趣的公司的程序员组成的TC39 锤炼出了ECMA-262。该标准定义了叫做ECMAScript的全新脚本语言。

灵敏的微软、迟钝的网景
虽然网景开发了JavaScript 并 首先提交给 ECMA 标准化。但因计划改写整个浏览器引擎的缘故,网景晚了整整一年才推出“ECMA规范”的 JavaScript 1.3 。 而微软则早在一年前就推出了IE4.0并且完全遵循了“ECMA 规范”。

小三变原配
由于 微软的Windows 绑定着Ie浏览器并且几乎占据了全部的市场份额,因此,在1999年之后,所有的网页都是基于JScript来开发的。JScript 成为了 JavaScript 语言的事实标准。
微软的 JScript 成为了 我们今日的Javascript.
网景公司大势已去!! 渐渐退出历史的舞台

第一次浏览器大战拉下帷幕
网景公司在微软强大的攻势下,1998年网景公司全面溃败。2000年前后,这场浏览器战争终于伴随着网景通信公司的衰落而暂告一段落。

二战的导火线 之 火狐崛起!!
Internet Explorer 浏览器的版本从 6升到7 前后花费了5年的时间

但就在2004年,Mozilla 基金会发布了FireFox浏览器。火狐浏览器在支持 Javascript 方面无可比拟,在后来的时间里一步步蚕食IE的市场份额,成为全球第二大浏览器厂商。

(据当时媒体报告中,在欧洲曾有一段时间里,火狐浏览器还超出了IE的市场份额。)

另外,Chrome、Opera、Safari等浏览器也纷纷占领市场份额!!

微软迫于此火烧眉毛的局势,采取的措施居然是连续不断地发布了8、9、10版本。
而这一举动不仅让IE被后来的前端开发者诟病唾弃(兼容性问题),也为未来衰落的迹象埋下伏笔。

第二次浏览器大战全面爆发!!

二战 之 谷歌的野心
它以简洁的页面,极速的浏览为特色,一举成为全球第三大浏览器。

二战 之 苹果的战略
Safari 浏览器是苹果公司各种产品的默认浏览器,在一体机(iMac)、笔记本(mac)、手机(iphone)、平板(ipad),并且在windows和Linux平台都有相应的版本。目前市场份额全球第四,但随着苹果的产品不断的深入人心、具有称霸之势

HTTP 战役 与 历史的更多相关文章

  1. RFM模型——构建数据库营销的商业战役!(转)

    RFM模型:R(Recency)表示客户最近一次购买的时间有多远,F(Frequency)表示客户在最近一段时间内购买的次数,M (Monetary)表示客户在最近一段时间内购买的金额.一般原始数据为 ...

  2. 【转帖】NET 的一点历史往事:和 Java 的恩怨

    NET 的一点历史往事:和 Java 的恩怨 https://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA==&mid=2654068672&idx= ...

  3. 新东方集团K12公益免费课战役记

    作者:张建鑫, 曾任IBM高级软件架构师, 滴滴高级技术专家, 现任新东方集团高级技术总监 1月31日,集团领导决定由产品技术中心的新东方APP团队牵头做周一到周五的集团公益课, 提供给全国中小学生使 ...

  4. 从中间件的历史来看移动App开发的未来

    在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...

  5. 清空Github上某个文件的历史版本

    title: 清空Github上某个文件的历史版本 author: 青南 date: 2015-01-08 16:04:53 categories: [经验] tags: [Github,histor ...

  6. 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】

    由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...

  7. History API与浏览器历史堆栈管理

    移动端开发在某些场景中有着特殊需求,如为了提高用户体验和加快响应速度,常常在部分工程采用SPA架构.传统的单页应用基于url的hash值进行路由,这种实现不存在兼容性问题,但是缺点也有--针对不支持o ...

  8. eclipse,myeclipse 误删文件,回滚历史文件操作

    昨天因为误操作把一个写了一上午的代码给删了,找到的这个,以前竟然还没发现有这个功能- -! 具体操作: 1.建立同路径同名的文件 2.文件上右键 --> Compare With --> ...

  9. Java泛型的历史

    为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在200 ...

随机推荐

  1. HTML DOM学习之一

    1.HTML DOM定义了访问和操作HTML文档的标准方法:DOM以树型结构表达了HTML文档: 2.DOM是W3C的标准,定义了访问HTML和XML文档的标准: DOM(文档对象模型)是中立于平台和 ...

  2. jQuery-认识JQuery,jQuery选择器

    认识JQuery: 1.window.onload与$(document).ready()的区别 window.onload $(document).ready() 执行时机 必须等待网页中的所有内容 ...

  3. js-Ajax与Comet

    Ajax与Comet: 1.Ajax技术的核心是XHR(XMLHTTPRequest对象) 创建xhr对象: function createXHR(){ if(typeof XMLHttpReques ...

  4. MFC 修改 单文档 SDI 窗体 标题

    程序主窗口标题栏的一般形式为: 文档标题—主窗口标题 1.修改文档标题 修改CExamDoc::onNewDocument()函数为: BOOL CExamDoc::OnNewDocument() { ...

  5. apache activemq的重连

    1.activemq的重连机制 maxReconnectAttempts -1 | 0 From version 5.6 onwards: -1 is default and means retry ...

  6. 获取DLL中的方法名称

      OpenFileDialog obj = new OpenFileDialog(); if (obj.ShowDialog() == System.Windows.Forms.DialogResu ...

  7. Oracle查询每天固定时间段的数据

    select * from GPS_LOG t where to_char(t.gps_time,'hh24:mm:ss')>='15:30:00'and to_char(t.gps_time, ...

  8. Start_Learning_Python 03 条件、循环

    if循环 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 条件语句和循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false ...

  9. ASP.net的url重写

    http://blog.csdn.net/windok2004/article/details/2432691 1. 有关于URL的重写,本文也只是拿来主意.相继有MS的组件“URLRewriter” ...

  10. Nodejs-搭建Nodejs开发环境

    学习nodejs,需要一个好的开发工具,并不想用无智能提示和不友好格式的记事本编写 1. 从www.nodejs.org下载nodejs并安装到指定的目录. 2. 下载一个开发工具, 可以选择webs ...