html页面返回原理,浏览器输入URL到界面显示(HTML渲染)发生了什么?

浏览器从输入URL到界面显示一共经历了6个阶段

1. DNS(域名)解析

2. TCP连接(三次握手)

3. 发送HTTP请求

4. 服务器处理请求并返回HTTP报文

5. 浏览器解析渲染页面

6. 连接结束

1. DNS(域名)解析

一个网址到ip地址的转换,找到URL对应的IP。如www.xiaochongtec.cn到22.33.55.66。

DNS查找过程中若有对应IP则停止查找:浏览器缓存、系统缓存、路由缓存、ISP(互联网服务提供商) DNS缓存(DNS服务器)

2. TCP连接

拿到 ip 地址后,浏览器会向服务器发起TCP连接请求,通过三次握手建立TCP连接。

服务器为什么能接收到客服端发起的请求呢?

服务器监听原理:服务器通过 socket(应用层与TCP通信中间层),bind 和 listen准备好接收外来连接,此时服务端状态为Listen

三次握手:

1. 客户端向服务器发送SYN(同步)报文(SEQ=x,SYN=1),并进入SYN_SENT状态,等待服务器确认  (SENT:发送)

2. 服务器收到客户端的请求,向客户端回复一个确认消息(ACK=x+1);服务器向客户端发送一个SYN包(SEQ=y)建立请求连接,此时服务器进入 SYN_RECV 状态   (RECV:接收)

3. 客户端接收服务器的回复(SYN+ACK 报文),然后客户端也向服务器发送发送确认包,此包发送完毕客户端和服务器进入 ESTABLISHED 状态,完成 3 次握手。  (ACK:确认   ESTABLISHED :成立)

3. 发送HTTP请求

浏览器向服务器发送HTTP请求。一个HTTP又分为请求和响应两部分。

HTTP请求消息:由请求行(request line)、请求头(header)、空行和请求数据4个部分组成。

1. 请求行:请求方法 + URL + HTTP协议版本 组成。如:GET /index.html HTTP/1.1

2. 请求头:由关键字/值对组成。User-Agent:产生请求的浏览器类型。Accept:客户端可识别的内容类型列表。Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机

3. 空行:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头

4. 请求数据:请求数据不在GET方法中使用,而是在POST方法中使用。与请求数据相关的最常使用的请求头是Content-Type(Content-Type:application/x-www-form-urlencoded)和Content-Length

HTTP响应消息:由响应行、响应头、响应体三个部分组成。

1. 响应行:HTTP协议版本 + 状态码 + 描述 组成。如: HTTP/1.1 200 OK

状态码:由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。1xx:指示信息–表示请求已接收,继续处理。2xx:成功–表示请求已被成功接收、理解、接受。3xx:重定向–要完成请求必须进行更进一步的操作。4xx:客户端错误–请求有语法错误或请求无法实现。5xx:服务器端错误–服务器未能实现合法的请求。

2. 响应头:与请求头部类似,为响应报文添加了一些附加信息,描述服务器的基本信息,以及数据的描述,服务器通过这些数据的描述信息,可以通知客户端如何处理等一会儿它回送的数据。

3. 响应体:响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码

HTTP特性:

1. HTTP是无连接:无连接意味着每次只能处理一个请求,服务器处理完客户端的请求并收到客户端应答后断开连接

2. HTTP是媒体独立的:只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型

3. HTTP是无状态:HTTP协议是无状态协议,表现为后续处理需要前面的信息,则它必须重传

4. 服务器处理请求并返回HTTP报文

服务器在接收到请求后,解析用户请求,知道了要调度那些资源文件,再通过相应的资源文件,处理用户的请求和参数,并调用数据库信息,最后讲结果通过web服务器返回给浏览器.

5. 浏览器解析渲染页面

解析过程6个步骤:解析HTML -> 创建DOM树 -> 解析CSS形成CSS对象模型 -> DOM树和CSS 结合构建渲染树 -> 布局 - > 绘制 -> 显示

渲染树:从DOM树的根节点开始遍历每个可见节点,让后对每个可见节点找到适配的CSS样式规则并应用,DOM 树不完全对应,display: none的元素不在渲染树中,而visibility: hidden的元素在渲染书中。display: none在DOM 树中

布局:对渲染树上的每个元素,计算它的坐标,称之为布局。包含宽高,位置,背景色等样式信息,我们常说的脱离文档流(可以随意设置宽高、不设置则给根据内容适应、不再给父元素汇报宽高),其实就是脱离渲染树,导致脱离标准流的元素:float元素,absoulte元素,fixed元素会发生位置偏移。

绘制:根据渲染树以及布局得到的几何信息,通过绘制得到节点的绝对像素。

显示:将得到的节点的绝对像素发送给GPU,展示在页面上

回流(重排)与重绘

回流(重排):当浏览器发现某个部分发生了页面布局和几何信息的变化,就需要倒回去重新渲染了,重新渲染,就又要经过布局计算可见节点在设备视口(viewport)内的几何信息,以及之后的绘制和显示将这些信息渲染在页面上。如:DOM操作(元素添加、删除、修改或者元素顺序的改变)

重绘:改变元素外观,但是不影响之前的位置,重新执行浏览器的绘制和显示过程。如: background-color(背景色), border-color(边框色), visibility(可见性)。浏览器会根据元素的新属性重新绘制一次(这就是重绘,或者说重新构造样式),使元素呈现新的外观。

"重绘"不一定需要"重排",比如改变某个网页元素的颜色,就只会触发"重绘",不会触发"重排",因为布局没有改变。但是,"重排"必然导致"重绘",比如改变一个网页元素的位置,就会同时触发"重排"和"重绘",因为布局改变了。

display:none、visibility:hidden和overflow:hidden的区别

1. display:none:隐藏元素,不占网页中的任何空间,让这个元素彻底消失(看不见也摸不着),由于会影响到网页的空间,所以会引起两次重排和重绘

2.  visibility:hidden:占据的空间还是存在的,该操作不会对页面有影响,所以只会引起一次重绘。

3. overflow:hidden:宽高把多余的那部分剪掉,会引起一次重排和重绘

4.脱离文档流和添加回文档这两次回流是无可避免的,但是中间的DOM操作,则是在渲染树之外进行的,因此不会产生任何的回流与重绘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx缓存HtmL文件,Nginx在缓存的html文件上返回404

我试图在没有索引页的所有.html文件中添加缓存,但是当我做了一些更改时,我的文件进入了404找不到页面。Nginx在缓存的html文件上返回404这是我对我的默认配置,没有任何改变,我做了,没有工作。server {listen 80;server…

韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...

2011韩顺平轻松搞定网页设计(htmlcssjs)之javascript现场授课笔记(完整版)视频18整和19的前半部分不用看Javascript的基本介绍JS是用于WEB开发的脚本语言:脚本语言是什么:脚本语言不能独立使用,它和HTML/JSP/PHP/ASP.NET配合使用脚本语言也有…

大学计算机基础知识点图文,大学计算机基础知识点超详细总结

大学计算机基础知识点超详细总结 第一章 计算机及信息技术概述1. 电子计算机的发展历程①1946 年 2 月由宾夕法尼亚大学研制成功的 ENIAC 是世界上第一台电子数字计算机。 “诞生了一个电子的大脑” 致命缺陷:没有存储程序。②电子技术的发展促进了电子计算机的更新…

计算机专业学comsol,有关COMSOL的学习心得,与同是初学者的朋友共勉! - 仿真模拟 - 小木虫 - 学术 科研 互动社区...

接触COMSOL也有一年时间了,相信很多朋友都有这样的感触,那就是完全不知所措,无从下手。根据网上的一些经验,参考案例,看用户手册,折腾了几个月甚至大半年的时间,对于模型计算的各种错误一头雾水…

兰州交通大学计算机科学与技术学院,兰州交通大学计算机科学与技术

职朋圈友兰州交通大学 | 计算机科学与技术 | 本科算机科学与技术学科为甘肃省省级重点学科,为硕士一级学科授权点,拥有国家级计算机实验教学示范中心、国家级交通信息类创新人才培养模式实验区。专业师资力量雄厚,2009年被授予国家级“计算机…

圣地亚哥的计算机科学在哪个学院,加州大学圣地亚哥分校计算机科学在哪个学院?...

加州大学圣地亚哥分校计算机科学在工程学院加州大学圣地亚哥分校雅各布工程学院成立于学校建校之初的1964-1965年,共开设6个系,拥有250多位世界级教师,开设本科、硕士和博士三个阶段的课程教育,目前共有本科生6025名,硕…

计算机网络检错码和纠错码的特点,检错码和纠错码有何不同?试比较在网络通信中使用时各自的优缺点。...

检错码和纠错码有何不同?试比较在网络通信中使用时各自的优缺点。更多相关问题心理发展的速度可以有个别差异,可以加速或延缓,但发展的顺序一般不能改变。这说明心理发展具有(德国邓克尔发现:人看到某物品具有一种功能后就很难看出…

云星空计算机名访问不可以,03.PLM系统访问金蝶云星空(webapi):读取基础资料编码、名称...

1. 需求描述PLM系统中的物料,BOM同步到金蝶云星空系统中时,构造的json数据中,一些基础资料字段需要传递编码,而不是名称。 本接口提供获取所有基础资料的编码、名称,可作为PLM系统中的对照关系。2. 接口定义2.1 请求地…

js复制html到粘贴板,用clipboard.js实现纯JS复制文本到剪切板

以前很多人都是用ZeroClipboard.js来实现网页复制内容,火端也是用它。ZeroClipboard是利用flash来实现的,ZeroClipboard兼容性很好,但是由于现在越来越多的浏览器不支持flash,导致一些没法正常使用了。今天火端开始使用clipboard.…

计算机 国际顶尖级会议排名,计算机学科国际会议排名.doc

计算机学科国际会议排名中科院计算所会议会议名称会议介绍代表领域1ACM SIGCOMM: ACM Conf on Communication Architectures, Protocols & AppsACM的旗舰会议之一,也是网络领域顶级学术会议,内容侧重于有线网络,每年举办一次,…

教师计算机excel培训教案,Excel培训教案..doc

三灶中心小学教师信息技术应用能力培训教案(excel部分)excel培训计划安排2学时,通过实例来进行讲解。具体讲解内容及时间进度视老师们的掌握情况酌情安排。附实例如下:培训内容:实例一: 建立与编辑工作表一、实验目的1. 掌握启动和…

计算机程序设计a,计算机程序设计 A(1620401)

计算机程序设计 A 是一门介绍了 C 语言基本概念并将其在程序设计中运用起来的课程。在本课程中,将会介绍如何用 C 语言完成基本的输入输出、数学运算、分支结构表达、循环结构表达;同时,我们会学会如何使用函数对程序进行组织、写出良好的程序…

计算机设备的存放,计算机硬件储存设备与网络储存的发展现状

计算机的出现,改变了人们的生活和生产,而计算机硬件技术的发展,则为计算机储存开辟了新的发展方向和途径。而随着时代的进步,计算机储存技术的发展也是日新月异,现在我们所使用的云储存技术,就是储存技术发…

计算机考研408哪个视频好,408计算机考研视频课哪个好

408计算机考研视频课哪个好?如今,考研培训班比比皆是,选择适合自己的成了很多考生的难题。如今的考研网课辅导,很适合考生复习备考。网络学习很方便,只要你有电脑或者手机,不管在哪里都可以学习,没有时间和地点的限制,另外不懂的知…

计算机键盘没有fn,键盘Fn键失灵怎么解决?键盘Fn键失灵的修复方法

电脑键盘是电脑输入设备中最常用的设备之一,也是大家使用最频繁的的设备。其实键盘Fn键占据着很大分量,Fn键能够实现很多功能,如控制音量、打开关闭摄像头、屏幕亮度调节等。如果Fn键失灵的话,那就会对电脑造成很大的影响,有什么办法修复?下面…

计算机cpu风扇不转怎么办,计算机CPU风扇不转怎么办

据一些计算机用户反映,一些组装机在使用时并没有什么异常,但在主板BIOS中,CPU风扇转速报告显示为0 rpm(转/分),那么这种情况是不是表示你的cpu风扇不转了呢?其实未必!由于目前大部分的ATX架构主板都支持风扇…

vs简易计算机等于号代码,等于(=)vs.

不同算子LIKE和是不同的操作者。这里的大多数答案都集中在通配符支持上,这并不是这些操作符之间唯一的区别!是对数字和字符串进行操作的比较运算符。比较字符串时,比较运算符将整串.LIKE比较的字符串运算符。逐字逐句.让事情变得更复杂的是&a…

逆水寒最新的服务器7月12日,《逆水寒》7月12日更新内容一览

六、 优化和调整1. 在论武中自动禁止辅助吃药功能,避免频繁提示“不可以吃非论武专用药”的消息。2. 优化队伍和帮会聊天频道的消息显示,减少大部分玩法提示消息在队伍和帮会频道的显示。3. 百里传音和千里传音不再会被系统消息顶掉。4. 为防止恶意刷屏&…

网站的服务器分哪几种,服务器有哪几种分类?_服务器可分为四种类型

办事器能够按使用分:OA办事器、数据库办事器、流媒体办事器、高机能计较办事器、逛戏办事器等。软盘接口是软盘取从机系统间的毗连部件,感化是正在软盘缓存和从机内存之间传输数据。分歧的软盘接口决定灭软盘取计较机之间的毗连速度,正在零个…

jqgrid ajax加载数据,如何通过ajax在jqgrid中加载数据(json)?

我有一个函数(在Java小服务程序)返回该JSON格式:[{"citta":"XXXX","via":"XXX","telefono":"1111-11111","provincia":"XX","clienteDesc":"Prova","cl…