从输入URL到页面渲染的整个过程 - 个人笔记

1、首先是URL地址解析
浏览器会判断输入的是一个合法的URL还是一个待搜索的关键词,并且根据输入的内容自动完成字符编码等操作
2、接着发起真正的URL请求,如果浏览器本地缓存了这个url请求所需的资源,则会直接将数据转发给浏览器进程,如果没有缓存,则会查询DNS域名解析,首先查找浏览器有没有DNS缓存(比如之前有访问记录),如果有则返回IP。如果没有就寻找本地的host文件,看看有没有域名记录,如果有则返回IP,如果本地host文件没有则直接向本地DNS服务器请求,如果还是没有,继续向上DNS服务器请求,直到返回。
3、浏览器拿到ip后,在向服务器发起http请求之前,会先和服务器建立TCP连接。

TCP连接的过程是什么?
答:其实就是三次握手。
第一次握手:客户端发送’SYN’数据包给服务端。
第二次握手:服务端接收到客户的数据包后,返回’SYN/ACK’数据发给客户端
第三次握手:浏览器收到服务端数据包后,发送’ACK’数据给服务端。

连接建立成功后,浏览器就可以开始发送http请求到服务器请求数据了。
每个http请求包含三个部分。
1、请求方法、请求地址、http协议版本(请求行)
2、请求头
3、请求正文
在这里插入图片描述

请求头和请求正文之间是有一个空行,这个行非常重要,他表示请求头已经结束,接下来的是请求正文。

然后后端会从固定的端口接收到TCP报文开始,它会对TCP链接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象。

一般大型的网站会将你的请求发到反向代理服务器中。因为当网站访问量非常大,网站越来越慢。一台服务器已经不够用了。于是将同一个应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。

此时,客户端部署直接通过http协议访问某网站应用服务器,而是先请求nginx,nginx再请求应用服务器,然后将结果返回给客户端。这里nginx的作用是反向代理服务器。

同时也带来了一个好处,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。
通过nginx的反向代理,我们到达了web服务器,服务端处理请求,访问数据库,然后将处理结果返回。也就是返回一个http响应。

http响应与请求相似,http响应也由3个部分构成,状态行,响应头、空行、响应正文。
在这里插入图片描述
浏览器接收到来自服务器的响应资源后,如果响应资源进行了压缩,则需要进行解压。然后对响应资源做缓存,

接下里对资源进行解析。这些资源包括html、css和JavaScript等文件。

1、html通过html解析器输出dom树
2、css通过css解析器输出css规则
3、结果dom树和css规则,计算出dom书中每个节点的具体样式,生成渲染树。
4、浏览器根据渲染树开始布局和绘制,会触发回流和重绘
5、构建图层树,显示页面。

以上就是从输入URL到页面渲染的整个过程。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值