一个网页形成的过程

1.DNS解析

当用户输入一个网址并按下回车键的时候,浏览器得到了一个域名。而在实际通信过程中,我们需要的是一个IP地址。因此我们需要先把域名转换成相应的IP地址,这个过程称作DNS解析。

    详细描述

	   1.浏览器首先搜索自身缓存的DNS记录。

	    2.如果没有或记录已经过期,则搜索hosts文件和操作系统缓存。

	    3.如果没有或记录已经过期,则向域名解析服务器发送解析请求。

	    4.如果还是没有,则开始递归 + 迭代解析。

	    5.获取域名和对应IP后,一步步向上返回,直到返回给浏览器。

2.发起TCP请求(三次握手)

在这里插入图片描述

    详细描述

     1.客户端向服务器端发送连接请求的报文。

     2.服务器端收到请求后,同意建立连接,并向客户端发送确认报文。

     3.客户端收到后,再次向服务器端发送报文,确认已经收到确认报文。



     建立tcp连接后,浏览器开始发送http请求

3.负载均衡

    当一台服务器无法支持大量用户访问时,将用户分摊到两个或多个服务器上的方法叫负载均衡。



    详细描述

    1.如果我们的平台配备了负载均衡的话,前一步DNS解析获得的IP地址应该是我们Nginx负载均衡服务器的IP地址。所以,我们的浏览器将我们的请求发送到了Nginx负载均衡服务器上。

    2.Nginx根据我们设定的分配算法和规则,选择一台后端的真实Web服务器,与之建立TCP连接、并转发我们浏览器发出去的网页请求。

    3.Web服务器收到请求,产生响应,并将网页发送给Nginx负载均衡服务器。

    4.Nginx负载均衡服务器将网页传递给filter链处理,之后发回给我们的浏览器。



    服务器响应HTTP请求,将请求的资源发送给浏览器。

4.浏览器释放TCP连接(四次挥手)

     1.浏览器向服务器发送释放连接报文。

    2.服务器收到后,发出确认报文,然后将服务器上未传送完的数据发送完。

    3.服务器数据传输完成后,向浏览器发送释放连接请求。

    4.浏览器收到后,发出确认,然后等待一段时间,释放TCP连接。

5.浏览器渲染

浏览器接收到服务器服务器返回的HTML页面代码,在解析和渲染这个页面时,里面的JS、CSS、图片等静态资源,也是一个个HTTP请求,都需要经过上面的步骤。

如何渲染一个页面

浏览器根据页面内容,生成DOM Tree。

根据css内容,生成CSS Rule Tree(规则树)。

调用JS执行引擎执行JS代码。

根据DOM Tree和 CSS Rule Tree生成 Render Tree(呈现树)。

根据根据Render Tree渲染网页。

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值