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 ...
随机推荐
- psql-03数据类型(1)
PostgreSQL支持的数据类型远比其他数据库要多; 类型输入与转换 select int '1', date '2015-12-6'; select '1'::int, '2015-12-6':: ...
- 为什么网页通常把JS调用放在底部?
JS是单线程,浏览器是多线程.当我们在浏览器的地址栏里输入一个url地址,访问新页面时,页面展示的快慢是由一个单线程控制,这个线程叫做UI线程.UI线程会根据页面里资源(资源是html文件.图片.cs ...
- Windows下安装 使用coreseek
1.安装 1.01:到官网下载 coreseek-3.2.14 1.01_1 原理 缓存服务器: 准备数据 来自数据库 配置连接 生成索引 开启服务 流程:用户-> web->sphin ...
- js获取浏览器地址
<script type="text/javascript"> window.onload = function(){ var txt=""; va ...
- three.js加入监控
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- three.js透视投影照相机
透视投影照相机(Perspective Camera)的构造函数是: THREE.PerspectiveCamera(fov, aspect, near, far) 让我们通过一张透视照相机投影的图来 ...
- apache activemq的重连
1.activemq的重连机制 maxReconnectAttempts -1 | 0 From version 5.6 onwards: -1 is default and means retry ...
- 【Linux程序设计】之进程间的通信
这个系列的博客贴的都是我大二的时候学习Linux系统高级编程时的一些实验程序,都挺简单的. 实验题目:Linux环境下的进程间通信 实验目的:熟悉进程通信中信号概念及信号处理:掌握进程间的管道通信编程 ...
- 编程之路 - 写给打算进入IT行业的新人们
IT=挨踢,这是IT人的自嘲,进入IT行业是有四五年了,也算得上是一个“老人”了吧,见了不少新人,面试了不少新人,也带了一些新人,多多少少还是有点发言权的. 关于书本 新人们常常会说我看了多少多少的书 ...
- 再探CSS 中 class 命名规范
一直以来我的CSS 的 class命名都是比较随意,有时采用驼峰式.有时采用下划线,好像没有什么统一的标准,想到什么英文单词就拿过来用,这对于自己瞎写的小项目无伤大雅,遇到冲突的问题可稍加调整改变即可 ...