浏览器运行原理

一、前言
浏览器工作原理的实质就是实现http协议的通讯,具体过程如下:(HTTP通信的流程,大体分为三个阶段)

  1. 连接,服务器通过一个ServerSocket类对象对某端口进行监听,监听之后进行连接,打开一个socket虚拟文件。
  2. 请求,创建与监理socket连接相关的流对象后浏览器获取请求,为get请求,则从请求信息中获取所访问的html文件名,向服务器发送请求。
  3. 响应,服务器收到请求后搜索相关的目录文件,若不存在则返回错误的信息;若存在则读取html文件,进行加http头等处理响应给浏览器,浏览器解析html文件,若其中还包含图片,视频等资源,则浏览器再次访问web服务器,获取图片视频等,并对其进行组装显示给用户。

二、浏览器简介
浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件。

浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件。

浏览器的主要功能就是向服务器发出请求,在浏览器窗口中展示您选择的网络资源。这里所说的资源一般是指 HTML 文档,也可以是 PDF图片其他的类型。 资源的位置由用户使用URI(统一资源标符)指定。

浏览器解释并显示 HTML 文件的方式是在 HTML 和 CSS 规范中指定的。这些规范由网络标准化组织 W3C(万维网联盟)进行维护。

目前使用的主流浏览器有五个:Internet Explorer、 Firefox、 Safari、 Chrome 和 Opera。

浏览器按照引擎分类:
(1)Trident引擎:Internet Explorer
(2)Webkit引擎:Chrome(28版本后基于blink,blink是webkit的一个分支)和Safari
(3)Gecko引擎:Firefox
(4)Presto引擎:早期Opera采用,后用webkit引擎。

三、浏览器的主要构成
浏览器的主要组件包括:

  1. 用户界面: 浏览器的用户界面有很多彼此相同的元素,其中包括用来输入 URI 的地址栏、前进和后退按钮、书签菜单设置选项、用于刷新和停止加载当前文档的刷新和停止按钮、用于返回主页的主页按钮。

  2. 浏览器引擎:在用户界面和呈现引擎之间传送指令,用来查询及操作渲染引擎的接口。

  3. 渲染引擎:在浏览器中用来显示请求的内容,例如,如果请求内容为html,它负责解析html及css,并将解析后的结果显示出来。渲染引擎一开始会从网络层获取请求文档的内容,通常以8K分块的方式完成。渲染引擎工作原理如下:
    在这里插入图片描述

  4. 网络:用来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作。

  5. UI后端(用户界面后端):用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口。

  6. JS解释器:用来解释执行JS代码。

  7. 数据存储:属于持久层,浏览器需要在硬盘中保存类似cookie的各种数据,HTML5定义了web database技术,这是一种轻量级完整的客户端存储技术。

     						图1:浏览器主要组件
    

在这图1:浏览器主要组件里插入图片描述
注意: 不同于大部分浏览器,Chrome为每个Tab分配了各自的渲染引擎实例,每个Tab就是一个独立的进程。

四、浏览器内核
浏览器内核分成两部分:渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎,负责请求网络页面资源加以解析排版并呈现给用户。
1、渲染引擎使用
(1)firefox使用gecko引擎 ;
(2)IE使用Trident引擎,2015年微软推出自己新的浏览器,原名叫斯巴达,后改名edge, 使用edge引擎;
(3)opera最早使用Presto引擎,后来弃用;
(4)chrome\safari\opera使用webkit引擎,13年chrome和opera开始使用Blink引擎;
(5)UC使用U3引擎;
(6)QQ浏览器和微信内核使用X5引擎,16年开始使用Blink引擎。
2、js引擎
(1)老版本IE使用Jscript引擎,IE9之后使用Chakra引擎,edge浏览器仍然使用Chakra引擎;
(2)firefox使用monkey系列引擎;
(3)safari使用的SquirrelFish系列引擎;
(4)Opera使用Carakan引擎;
(5)chrome使用V8引擎。nodeJs其实就是封装了V8引擎。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值