前面的很多文章都零星讲述到关于页面渲染过程,这章就简单总结下从 URL 输入到页面展现的渲染过程。了解页面渲染的流程,更方便我们开发高性能的页面和提高用户的体验有很重要的意义。
大概的历程是这样的,我们对其进行解析,但是不会太过于深入。
不仅限于输入URL,从其他方式例如点击跳转,js跳转等各种方式都能进行页面的跳转进行页面的访问。
URL : 统一资源定位器,用于定位互联网上资源,简称网址。我们通过URL从Web服务器请求页面。
URL结构:scheme://host.domain:port/path/filename
浏览器对 URL 进行检查时首先判断协议,如果是 http/https 就按照 Web 来处理,另外还会对 URL 进行安全检查,然后直接调用浏览器内核中的对应方法,接下来是对网络地址进行处理,如果地址不是一个IP地址而是域名则通过DNS(域名系统)将该地址解析成IP地址。IP地址对应着网络上一台计算机,DNS服务器本身也有IP,你的网络设置包含DNS服务器的IP。
DNS的解析域名的方式:递归查询和迭代查询。
查询的历程:
不做过多篇幅的介绍,对DNS解析有兴趣的学习下DNS原理及其解析过程。
浏览器和服务端TCP请求建立的过程,是基于TCP/IP,该协议由网络层的IP和传输层的TCP组成,IP是每一台互联网设备在互联网中的唯一地址。TCP通过三次握手建立连接,并提供可靠的数据传输服务。
谢希仁著《计算机网络》中讲“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”。
TCP 三次握手结束后,开始发送 HTTP 请求报文。
互联网内各网络设备间的通信都遵循TCP/IP协议,利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。分层由高到低分别为:应用层、传输层、网络层、数据链路层。发送端从应用层往下走,接收端从数据链路层网上走。
请求报文由请求行(request line)、请求头(header)、请求体四个部分组成:
请求头包含请求的附加信息,由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。
请求头部通知服务器有关于客户端请求的信息。它包含许多有关的客户端环境和请求正文的有用信息。其中比如:Host,表示主机名,虚拟主机;Connection,HTTP/1.1 增加的,使用 keepalive,即持久连接,一个连接可以发多个请求;User-Agent,请求发出者,兼容性以及定制化需求。
请求体,可以承载多个请求参数的数据,包含回车符、换行符和请求数据,并不是所有请求都具有请求数据。
服务器是网络环境中的高性能计算机,它侦听网络上的其他计算机(客户机)提交的服务请求,并提供相应的服务,比如网页服务、文件下载服务、邮件服务、视频服务。
接收端的服务器在链路层接收到数据包,再层层向上直到应用层。这过程中包括在传输层通过TCP协议将分段的数据包重新组成原来的HTTP请求报文。
常见的 web server 产品有 apache、nginx、IIS 或 Lighttpd 等。web server 担任管控的角色,对于不同用户发送的请求,会结合配置文件,把不同请求委托给服务器上处理相应请求的程序进行处理(例如 CGI 脚本,JSP 脚本,servlets,ASP 脚本,服务器端JavaScript,或者一些其它的服务器端技术等),然后返回后台程序处理产生的结果作为响应。
MVC 是一个设计模式,将应用程序分成三个核心部件:模型(model)-- 视图(view)–控制器(controller),它们各自处理自己的任务,实现输入、处理和输出的分离。
服务器响应请求后启动一个新的子进程去处理这个请求,处理完毕后会返回相应文件。
HTTP响应报文由响应行(request line)、响应头部(header)、响应主体三个部分组成。
状态码:由3位数组成
请求的响应终于成功到达了客户端的浏览器,响应到达浏览器之后,浏览器首先会根据返回的响应报文里的一个重要信息——状态码进行判断。
不过多描述,可以参考之前写的文章进行了解。
Dom树
重绘和重排
当数据传送完毕,需要断开 TCP 连接,此时发起 TCP 四次挥手。
当被动方收到主动方的FIN报文通知时,它仅仅表示主动方没有数据再发送给被动方了。但未必被动方所有的数据都完整的发送给了主动方,所以被动方不会马上关闭SOCKET,它可能还需要发送一些数据给主动方后,再发送FIN报文给主动方,告诉主动方同意关闭连接,所以这里的ACK报文和FIN报文多数情况下都是分开发送的。
文章主要大概讲述页面渲染的过程,没有深入进行解析,有兴趣的同学可以自行对其中的历程每一步进行深究,欢迎共同分享~
本文发布于:2024-01-29 13:45:33,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170650713515692.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |