浏览器史话中chrome霸主地位的奠定与国产浏览器的割据混战
作为前端老鸟,从IE的6、7、8开始做前端,各种兼容性折磨死人。js还好有了jQuery。chrome出来后,真是救苦救难,解救程序员的于水火。但是可恶的boss还是要求兼容ie6,7。感谢淘宝团队的表率,率先不支持ie8以下浏览器。有了跟产品经理和老板抗争的勇气……
下面来回顾下浏览器的发展历史
浏览器的起源
浏览器始祖NCSA Mosaic在1993年1月发布(于1992年末由国家超级计算机应用中心—National Center for Supercomputing Applications开发)。Mosaic可以同时展示文字和图片,从此浏览器变得有趣多了。 在当时人气爆发的大受欢迎。Mosaic的出现,算是点燃了后期互联网热潮的火种之一。NCSA将Mosaic的商业运营权转售给了Spyglass公司,该公司又向包括微软公司在内的多家公司技术授权,允许其在 Mosaic的基础上开发自己的产品
MOSAIC开发的中心人物马克·安德森和吉姆·克拉克(几何图形发生器发明人、SGI与Healtheon公司的创始人)设立了「MOSAIC Communication Corp.」,这家公司之后1994年11月改名为「Netscape Communication Corp.」,中译为网景。网景通信聘用了许多原有的Mosaic浏览器工程师,但是没有采用Mosaic网页浏览器的任何代码。
1994年10月13日,网景通信公司推出发布了Mosaic Netscape 0.9
1994年开始,网景通信公司推出了代号为Netscape Navigator 1.0(网景导航者、网景浏览器),随后迭代版本迅速占领浏览器大部分份额。Netscape自称“Mozilla/1.0(Win3.1)”,一说 Mozilla = Mosaic + Killer,意为Mosaic杀手,也有说法是 Mozilla = Mosaic & Godzilla,意为马赛克和哥斯拉,而Mozilla最初的吉祥物是只绿色大蜥蜴,后来更改为红色暴龙,跟哥斯拉长得一样。
1995年起搭载cookie、框架和JavaScript等多样独自功能的2.0版上市。从前前端码农开始可以大踏步干活了,与通宵达旦干兼容血战到底。网景支持框架(frame),但是Mosaic不支持框架,于是网站管理员探测user agent,对Mozilla浏览器发送含有框架的页面,对非Mozilla浏览器发送没有框架的页面。
网景一看浏览器业务这么好,那干脆试着做一个操作系统得了,微软意识到网景通讯公司对其操作系统和应用市场的威胁,立马收购另外一家浏览器公司,在其基础上开发了Internet Explorer网景跟微软的撕逼大战不必多说,这中间就是多出了IE。windows捆绑IE,网景涅盘成了 Mozilla 基金会并制作了 Gecko,自称 Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) 。Mozilla 后来又成了Firefox(火狐),自称 Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0。这些目前基本非常小众了。
苹果鼓捣出了 Safari,拿来了 KHTML,敲敲打打修修补补一番满意之后改称 WebKit。Safari 想要用给 KHTML 准备的网页,因此自称 Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5。
无论是Firefox还是Opera还是IE,都是骨灰。这里暂且略过。正主chrome从webkit中诞生
国产浏览器的起源于IE,一位网名为changyou(畅游)的程序员于1999年在论坛上发布一款叫”MyIE"的浏览器,基于IE,但采用多窗口浏览,占用系统资源比IE6少很多,且有鼠标手势、视觉化书签等功能,后来的中国浏览器MyIE2(后改名Maxthon)、网际畅游(后改名GreenBrowser)与TheWorld(世界之窗)等都是用MyIE的源代码改写完成。这几款浏览器都不是开发MyIE那位维护的,MyIE版本到3.2版本后就再也没有更新过,“畅游”这个人也消失不见了。后来呢遨游成立公司独自运营,TheWorld被360收购变成了360安全浏览器。后他们随着3q大战 3b大战,各个厂商都推出拿着webkit的外衣推出各自的浏览器。
Chrome Beta版正式发布
2008年,北京奥运会开展之际,Google正式发布首个Chrome Beta版,这次发布涉及全球100多个国家。同日,Google官方网站也提供了下载连接。
2009年,Chrome在支持Windwos的基础上又发布了Mac和Linux两个版本,至此Chrome浏览器已经支持所有主流系统。

chrome从08年到14年和从14年到18年,基本都发布了30个版本。
准备手机chrome各个版本演进的历史。等待更新吧。
参考文章:
浏览器 发展历史 https://www.jianshu.com/p/c1c2737f1d0b
全球第一大浏览器 简述Chrome发展史 https://digi.tech.qq.com/a/20120605/001119.htm
转载本站文章《浏览器史话中chrome霸主地位的奠定与国产浏览器的割据混战》,
请注明出处:https://www.zhoulujun.cn/html/webfront/browser/webkit/2019_0615_8140.html
浏览器史话中chrome霸主地位的奠定与国产浏览器的割据混战的更多相关文章
- 将浏览器地址栏中的 Request 参数显示成中文
希望实现:在当 JSP 页面发起请求,或者 Servlet 跳转时,地址栏中的参数可以显示成中文. 在通常情况下,浏览器地址栏中的URL地址为了适配不同的浏览器,会将URL地址信息转码为"I ...
- PluginOK中间件高级版-支持在Chrome、Edge、Firefox等浏览器网页中真正内嵌ActiveX等控件运行的版本已获多家上市公司采购
PluginOK(牛插)中间件(原名:本网通WebRunLocal)是一个实现WEB浏览器(Web Browser)与本地程序(Local Application)之间进行双向调用的低成本.强兼容.安 ...
- 谷歌chrome浏览器network中Stalled分析和优化
谷歌chrome浏览器network中Stalled分析和优化 问题由来 最近项目上要求首页的加载速度,查看浏览器的network发现接口加载速度非常慢. 问题解决思路 SSL 网上有人因为图片加载, ...
- 各种浏览器(IE,Firefox,Chrome,Opera)COOKIE修改方法[转]
各种浏览器(IE,Firefox,Chrome,Opera)COOKIE修改方法[转] 网站通过 Cookie 保存了我们访问网站的信息,在不同的浏览器中修改 Cookie 可以如下操作: Firef ...
- JavaScript 最终将在编程语言中占统治地位?
JavaScript 最终将在编程语言中占统治地位? JavaScript 现在是大多数开发者都会使用的编程语言.网络效应会推动它成为有史以来第一个真正占统治地位的编程语言吗? 大约十年前,编程的方式 ...
- JavaScriptCore在浏览器引擎中的位置
因为随着JS这门语言的发展,JS的宿主越来越多,有各种各样的浏览器,甚至是常见于服务端的Node.js(基于V8运行). 2. Webkit 源代码由三大模块组成: 1). WebCore ...
- Chrome浏览器内部协议Chrome://收集
Chromium 采用 Chrome:// 协议开头的形式, 规定了一系列的内部协议, 有的用来显示数据, 有的用来实现一些功能, 但对普通用户进行了屏蔽.在Chrome浏览器地址栏直接访问就好了! ...
- Python3 + selenium + Chrome浏览器(webdriver.Chrome()报错)
Python3 + selenium + Chrome浏览器 Error: selenium.common.exceptions.WebDriverException: Message: 'chrom ...
- mac中chrome常用快捷键
1.标签页和窗口快捷键 ⌘-N 打开新窗口. ⌘-T ...
- 浏览器上网 (Safari & Chrome)
浏览器上网 (Safari & Chrome) Command + L = 光标移到地址框 Command + R = 刷新页面 Command + + = 大屏幕的时候很实用,放大页面,基本 ...
随机推荐
- 简单实现.NET Hook与事件模拟
最近玩<星露谷物语>上瘾,本来是看着个休闲游戏,现在玩成修仙游戏了,上百个小时浑身是肝,中午午休习惯都强行给改了. 虽然挺有意思,但是太肝了,入坑前请谨慎.补充一下,这个游戏应该是基于 X ...
- 如何解决Asp.Net Core 3.1上传文件出现跨域
这个问题挺奇怪的,明明就是文件过大的问题,却出现了跨域的错误,搞不懂,有了解的大佬请指教. 但问题还是解决了,其实就是Nginx默认上传大小限制为1M,如果超出了,则出现跨域的错误. 一.自定义Ngi ...
- 【PySide6】QChart笔记(一)—— 用QDateTimeAxis作为x轴绘制多条折线图
一.QDateTimeAxis简介 1. 官方描述 https://doc.qt.io/qtforpython-6/PySide6/QtCharts/QDateTimeAxis.html QDateT ...
- 【uniapp】【微信小程序】【外包杯】如何创建分包
意义:分包可以减少小程序数次启动时的加载时间 1.创建分包的根目录 2.在page.json中,和pages节点平级的位置声明节点,用来定义分包的相关结构 3.在subpkg目录上新建页面 4.完成了
- Grid 拖拽布局实现
最近有个需求需要实现自定义首页布局,需要将屏幕按照 6 列 4 行进行等分成多个格子,然后将组件可拖拽对应格子进行渲染展示. 示例 对比一些已有的插件,发现想要实现产品的交互效果,没有现成可用的.本身 ...
- New Type Functions/Utilities for Dealing with Ranges in C++20
Generic Types of Ranges 类型萃取从字面意思上来说其实就是帮助我们挑选某个对象的类型,筛选特定的对象来做特定的事.可以先来回顾一下以前的写法. #include <ve ...
- 性能测试Mysql之profiling参数
一.查看profiling状态 mysql> select @@profiling; 0:表示为关闭 1:表示开启 二.开启 profiling mysql> SET profiling= ...
- 一道入门的java安全题
[XCTF]Zhuanxv 收获 java题的一般流程 HQL注入 SQL注入 看题 目录扫描 dirsearch扫目录,发现list目录: 一个登录界面,本着尽量不写sql注入题目的原则(因为太菜了 ...
- Go:条件控制语句
在 Go 语言中,主要的条件控制语句有 if-else.switch 和 select.以下是对它们的简单介绍: 1. if 语句: if 语句用于根据条件执行不同的代码块.它的基本形式如下: if ...
- [ABC246D] 2-variable Function
Problem Statement Given an integer $N$, find the smallest integer $X$ that satisfies all of the cond ...