浏览器20年图说简史

这是 Six Revisions 制作的一幅浏览器近20年来的发展简史图,从最早的 WorldWideWeb Browser 到现在最新的 Google Chrome,期间包含了 Mosaic, Netscape, IE, Opera, Mozilla, Safari, Firefox。

 

1991年,WorldWideWeb 浏览器发布

这款由 Web 之父 Tim Berners-Lee 亲手设计的图形化浏览器还包含一个所见即所得 HTML 编辑器,为了避免同 WWW 混淆,这个浏览器后来改名为 Nexus。

1993年,Mosaic 发布

Internet 的流行应该归功于 Mosaic,这款浏览器将 Web 带向了大众。诸如 IE, Firefox 一类的当代浏览器仍然在延用 Mosaic 的图形化操作界面思想。

1994年,Netscape 成立

Marc Andreessen 带领 Mosaic 的程序员成立了 Netscape 公司,并发布了第一款商业浏览器 Netscape Navigator。

1995年,IE 发布,浏览器之战即将爆发

微软针对 Netscape 发布了他们自己的浏览器,IE,第一场浏览器之战爆发。

1996年,Opera 发布

Telenor 是挪威最大的通讯公司,他们推出了 Opera,并在两年后进军移动市场,推出 Opera 的移动版。

1998年,Mozilla 项目成立

Netscape 成立 Mozilla 开源项目,开发下一代浏览器,后来证明,使用原有代码开发新东西是一种负担,接着他们着手从新开发。

1998年,Netscape 浏览器走向开源

随着同 IE 征战的失利,Netscape 市场份额急剧下降,Netscape 决定将自己的浏览器开源以期重整山河。

2002年,IE 开始主导浏览器市场

市场份额达到95%,借助同操作系统的捆绑优势,IE 赢得第一场浏览器之战。

2003年,苹果 Safari 浏览器登场

苹果进入了浏览器市场,推出自己的 Webkit 引擎,该引擎非常优秀,后来被包括 Google, Nokia 之类的厂商用于手机浏览器。

2004年,Firefox 引发第二场浏览器之战

Firefox 1.0 推出。早在 Beta 测试期间就积累了大量人气的 Firefox 引发了第二场浏览器之战,当年年底,Firefox 已经赢得 7.4% 的市场份额。

2006年,IE7 发布

IE6 发布后的第六年,迫于 Firefox 的压力,微软匆匆推出 IE7 应战,吸取了 Firefox 的一些设计思想,如标签式浏览,反钓鱼等。但这款浏览器现在看来并不成功。

2008年,Google 携 Chrome 参战

Google 发布了他们自己的浏览器,加入这场战争。轻量,快,异常的稳固让这款浏览器成为不可轻视的一个对手。

 

本文来源:http://sixrevisions.com/web-development/the-history-of-web-browsers/
中文翻译来源:COMSHARP CMS 官方网站

### SQL 关联查询与子查询的概念 #### 视图简介 视图本质上是一个保存在数据库中的查询语句,它代表了一个虚拟的表。当访问视图时,实际上是在执行该视图所定义的基础查询语句[^1]。 #### 子查询概念 子查询是指嵌套在一个更大查询内部的小型查询。这些小型查询可以位于`SELECT`、`FROM`或`WHERE`子句中,并且通常用于提供过滤条件或其他操作所需的值。例如,在给定的成绩表例子中,通过子查询计算特定科目的平均分数并将其作为外部查询的一部分来筛选高于此均值的学生记录[^2]。 ```sql select * from scores as s where score > ( select avg(score) from scores where cid = s.cid ) and Sid BETWEEN 1 and 6; ``` #### 联接查询概述 关联查询涉及多个表格之间基于某些共同列的数据组合方式。最常见的是使用`JOIN`语法实现不同类型的连接: - **内连接 (`INNER JOIN`)** 只返回两个表中共有的匹配行。 - **左外连接 (`LEFT OUTER JOIN`) 和右外连接 (`RIGHT OUTER JOIN`)** 返回左边/右边表的所有记录以及另一边表中存在的对应项;如果另一侧无匹配,则填充NULL值。 - **全外连接 (`FULL OUTER JOIN`)** 结合了左右两侧所有的数据,即使它们不相交也会显示出来,对于缺失的部分则用null代替。 此外还有自然连接(`NATURAL JOIN`)这种特殊的等值连接形式,会自动识别两张表间具有相同名称的字段来进行比较[^3]。 ```sql select * from emp natural join dept; ``` #### 子查询 VS 联接查询对比分析 | 特征 | 子查询 | 联接查询 | |--| | 定义 | 嵌入到另一个SQL命令内的独立查询 | 处理来自一个以上的关系对象(即表)的信息 | | 使用场景 | 当需要先处理一部分逻辑再应用于整体时 | 需要跨多张表检索信息 | | 性能 | 对于复杂情况可能较慢 | 如果索引得当的话性能较好 | | 易读性和维护性 | 更加直观易懂 | 表达更复杂的业务关系 | #### 图解说明 为了更好地理解这两种技术的区别,请考虑下面这个简单的Venn图表示法: ![image](https://example.com/image.png) 在这个假设的例子中,“A”和“B”分别代表不同的实体集(比如员工和部门)。橙色区域展示了两种方法如何交互作用以提取所需的结果集: - 左边部分展示了一种典型的子查询应用场景——我们首先确定某个属性满足一定标准的对象集合(如高薪雇员),然后再与其他相关资源建立联系; - 右边则是关于联接查询的一个实例,这里强调的是直接将两个结构化存储单元按照预设规则结合起来的过程。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值