初步了解浏览器

浏览器的主要功能?

浏览器的主要功能是将用户选择的web资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是HTML,也包括PDF、image及其他格式。用户用URI(Uniform Resource Identifier统一资源标识符)来指定所请求资源的位置,关于URI的部分在之后的HTTP协议这部分再进行详细的研究。

浏览器的种类

浏览器内核Rendering Engine(渲染引擎)

浏览器的种类,如果按照生产商的品牌分,不说数以万计,起码也有成百上千种了, 如果按浏览器核心分类,它的种类就会少的多。
当今流行的浏览器核心主要是四个,它们分别是:Trident、Gecko、WebKit和Blink内核。 乍一看,似乎都很陌生,其实并不然,只要你上过网,就至少用过其中一种浏览器核心的浏览器软件,因为它们的市场占有率的确是太高了。

一、Trident内核,代表产品Internet Explorer
二、Gecko内核,代表作品Mozilla Firefox
三、WebKit内核,代表作品Safari、Chrome
四、Blink内核,代表作品Chrome,Opera

什么是浏览器的内核

浏览器最重要或者说最核心的部分叫做“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释并渲染网页。所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。
浏览器的内核决定了网页的呈现的内容、格式以及效果。所以说,一个好的浏览器,一定是基于有一个稳定、高端、作用明显的浏览器内核的。

浏览器的兼容性

浏览器的兼容问题是前端常常遇到并且必须要解决的问题,所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况。在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果。

在上古时期,IE横行的年代,前端开发人员通过CSS hack技术达到想要的想过,CSS hack的目的就是使你的CSS代码兼容不同的浏览器。
JS方面:IE的早期版本对w3c标准的支持相当的不友好,以至于Chrome,FireFox的市场占有率与其平起平坐的时候,前端开发人员在写JS功能时不得不同时兼容2到3种浏览器,开发效率及其低下。随之出现的jQuery以良好的兼容性深得开发人员的追捧,成为一代神话。

如今,webkit内核的浏览器成为主流,开源化的内核得到了许多浏览器厂商的青睐,解决浏览器之间的兼容性问题比之从前要轻松的多。 怎么解决呢?实际上就是放弃一部分用户,并且有不得不放弃的理由,这个以后再谈。总之我们前端在做着手项目之前,一定要了解的就是该项目要向下兼容到ie的什么版本,再来决定我们使用什么技术。

常用浏览器

五种主流浏览器——IE、Firefox、Safari、Chrome及Opera

IE - Trident内核
Firefox - Gecko内核
Safari - Webkit内核
Chrome - Blink内核(Webkit内核的分支)
Opera - 旧版本使用的是Presto内核,新版本使用的是Blink内核

套壳浏览器:

自己本身不带内核,而是直接调用本机其他浏览器的内核,来实现浏览的功能。
很多浏览器开发商就运用了套壳浏览器的特性推出了双核浏览器,带有两种浏览模式,其原理就是本身带一内核,开启兼容模式后,调用本机上的ie内核,来实现双引擎功能。
在国产双核浏览器中强制使用webkit内核

<meta name="renderer" content="webkit">//默认用极速核,强制浏览器使用极速模式,按W3C标准渲染页面
<meta name="renderer" content="ie-comp">//默认用ie兼容内核
<meta name="renderer" content="ie-stand">//默认用ie标准内核
/*保险起见推荐如下书写,意思是按照书写内核的顺序优先级如下:首先强制浏览器优先使用webkit内核(极速内核),
    如果浏览器没有webkit内核,则按照用户浏览器所支持的最新的ie的Trident内核渲染页面(ie兼容内核),
    某种按照当前浏览器的标准内核渲染(ie标准内核)。
    多个内核名称,之间以符号”|”进行分隔
 */
<meta name="renderer" content="webkit|ie-comp|ie-stand">

浏览器的主要组成

①用户界面(User Interface) - 包括菜单栏、工具栏、地址栏、后退/前进按钮、书签目录等,也就是能看到的除了显示页面的主窗口之外的部分;
②浏览器引擎(Browser engine) - 用来查询及操作渲染引擎的接口;
③渲染引擎(Rendering engine) - 用来显示请求的内容,例如,如果请求内容为html,它负责解析html及css,并将解析后的结果显示出来;
④网络部分(Networking) - 主要用于网络调用,例如HTTP请求,其接口与平台无关,并为所有的平台提供底层实现;
⑤JS解释器(JavaScipt Interpreter) - 也可以称为JS内核,主要负责处理javascript脚本程序,一般会附带在浏览器之中,例如chrome的V8引擎;
⑥UI后端(UI Backend) - 用于绘制基本的窗口部件,比如组合框和窗口等;
⑦数据存储(Data Persistence) - 保存类似于cookie、storage等数据部分,HTML5新增了web database技术,一种完整的轻量级客户存储技术。

猜你喜欢

转载自blog.csdn.net/dreamingbaobei3/article/details/87857829