HTTP 战役 与 历史
导火线
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 战役 与 历史的更多相关文章
- RFM模型——构建数据库营销的商业战役!(转)
RFM模型:R(Recency)表示客户最近一次购买的时间有多远,F(Frequency)表示客户在最近一段时间内购买的次数,M (Monetary)表示客户在最近一段时间内购买的金额.一般原始数据为 ...
- 【转帖】NET 的一点历史往事:和 Java 的恩怨
NET 的一点历史往事:和 Java 的恩怨 https://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA==&mid=2654068672&idx= ...
- 新东方集团K12公益免费课战役记
作者:张建鑫, 曾任IBM高级软件架构师, 滴滴高级技术专家, 现任新东方集团高级技术总监 1月31日,集团领导决定由产品技术中心的新东方APP团队牵头做周一到周五的集团公益课, 提供给全国中小学生使 ...
- 从中间件的历史来看移动App开发的未来
在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...
- 清空Github上某个文件的历史版本
title: 清空Github上某个文件的历史版本 author: 青南 date: 2015-01-08 16:04:53 categories: [经验] tags: [Github,histor ...
- 【开源】分享2011-2015年全国城市历史天气数据库【Sqlite+C#访问程序】
由于个人研究需要,需要采集天气历史数据,前一篇文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子),介绍了基本的采集思路和核心代码,经过1个星期的采集,历史数据库 ...
- History API与浏览器历史堆栈管理
移动端开发在某些场景中有着特殊需求,如为了提高用户体验和加快响应速度,常常在部分工程采用SPA架构.传统的单页应用基于url的hash值进行路由,这种实现不存在兼容性问题,但是缺点也有--针对不支持o ...
- eclipse,myeclipse 误删文件,回滚历史文件操作
昨天因为误操作把一个写了一上午的代码给删了,找到的这个,以前竟然还没发现有这个功能- -! 具体操作: 1.建立同路径同名的文件 2.文件上右键 --> Compare With --> ...
- Java泛型的历史
为什么Java泛型会有当前的缺陷? 之前的章节里已经说明了Java泛型擦除会导致的问题,C++和C#的泛型都是在运行时存在的,难道Java天然不支持“真正的泛型”吗? 事实上,在Java1.5在200 ...
随机推荐
- Loadrunner中参数化实战(8)-Unique+Each occurrence
参数化数据30条: 脚本如下,演示登录,投资,退出操作是,打印手机号: 首先验证Vugen中迭代: Unique+Each occurrence 设置迭代4次Action 结果如下:
- 解决phpMyAdmin“登录超时 (1440 秒未活动),请重新登录”的问题
问题描述 phpMyAdmin打开一段时间后会出现“登录超时 (1440 秒未活动),请重新登录”的问题: 解决方法 永久有效: vim config.inc.php 然后在里面加上下面这一行: $c ...
- SpringMyBatis解析3-MapperFactoryBean
在使用mybatis的时候,我们获取dao的方式一般是这样: SqlSession session=sessionFactory.openSession(); PersonDao personDao= ...
- 《DSP using MATLAB》示例Example4.4
代码: x1 = [2, 3, 4]; x2 = [3, 4, 5, 6]; % x1 x2 sequences % n1 = 0:1:2; n2 = 0:1:3; n1 = 0:1:length(x ...
- iOS10 UI教程视图的生命周期
iOS10 UI教程视图的生命周期 说到视图的生命周期一般都是指视图控制器的视图生命周期.在视图的声明周期中最主要的有8个方法,分别为loadView().viewDidLoad().viewWill ...
- Java类与对象的基础学习
1. 请输入并运行以下代码,得到什么结果? public class Test{ public static void main(String args[]){ Foo obj1=new Foo(); ...
- jQuery-品牌列表案例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 本BLOG简介(内有一道UVa524素数环进阶版)【B001】
[B001]Hi,大家好,今天我的博客第一天开通,今天奉上开博题,出自首都师师范大学附属中学OJ(题号未知在练习场中)原题为UVa524,题目要求如下: [难度B]—————————————————— ...
- jquery: json树组数据输出到表格Dom树的处理方法
项目背景 项目中需要把表格重排显示 处理方法 思路主要是用历遍Json数组把json数据一个个append到5个表格里,还要给每个单元格绑定个单击弹出自定义对话框,表格分了单双行,第一行最后还要改ro ...
- MFC MSBDutyTable下载地址
点击此处跳转到下载地址 简明教程: 对于非制表人,只需要添加空余时间-新建,然后点星期和节数有课的那个按钮,勾选自己有课的周数.全部勾好后,生成空余时间表.然后查看自己的空余时间表,并导出,发给制表人 ...