惊了,浏览器竟偷偷干了这些事....

前言

之前我就一直好奇,为什么我在浏览器输入一个地址之后,就可以返回数据,这中间到底发生什么了呢?
于是我苦研技术二十年(bus),终于把这中间发生了啥大概给理清楚了。接下来就一起来看看到底发生了啥子吧!
在这里插入图片描述

从大的方向来说,它做了这么几件事:

  1. URL 解析
  2. CDN查询
  3. TCP连接(三次握手)
  4. HTTP 请求
  5. 响应请求(四次握手)
  6. 渲染页面

那么我们来详细的说一下具体的实现步骤吧。

1、URL 解析:

一个 URL 包括 协议,网络地址,资源路径

它会先检查你输入的地址是不是合法的。如果是不合法的地址,会转给默认的搜索引擎,例如如果你正在使用chrome,可以在URL输入框输入你想要搜索的内容,然后搜索引擎会根据关键字进行搜索。

2、CDN查询

1、先在各种缓存信息中查找

例如:baidu.com 就是域名
首先,他会先去浏览器缓存记录中查找------浏览器会缓存DNS一段时间

系统缓存-----如果浏览器中没有找到,浏览器会有一个系统调用,获得系统缓存中的记录

路由器缓存-----接着将请求发给路由器,路由器一般也有自己的DNS缓存

2.DNS服务器查找

如果没有,则发送请求到本地域名服务器。每一个本地域名服务器都维护一个高速缓存,存放最近用过的域名及其IP地址。如果还没有则发出递归查询(本地服务器请求比他高一级的服务器,如此递归直到根域名服务器,肯定能找到这个服务器的IP地址)通过这个IP可以找到客户端到服务器端的唯一路径

3、 TCP连接(三次握手)

确定好目标服务器的ip地址端口号后,就开始和远程服务器建立 TCP 链接。

TCP 是一种面向有连接的传输层协议。 它可以保证两端(发送端和接收端)通信主机之间的通信可达。 它能够处理在传输过程中丢包、传输顺序乱掉等异常情况;此外它还能有效利用宽带,缓解网络拥堵。
在确定目标服务器服务器的IP地址后,则经历三次握手建立TCP连接,流程如下:
在这里插入图片描述

4、 HTTP 请求

与服务器建立了连接后,就可以向服务器发起请求了。

在应用层,浏览器会分析这个URL,并设置好请求报文发出。请求报文中包括请求行、请求头、空行、请求主体。HTTPS默认请求端口443, HTTP默认80

5、 响应请求(四次握手)

当服务器接收到浏览器的请求之后,就会进行逻辑操作,处理完成之后返回一个HTTP响应消息,包括:

  • 状态行
  • 响应头
  • 响应正文

在服务器响应之后,由于现在HTTP默认开始长连接keep-alive, 当页面关闭之后,TCP链接则会经过四次挥手完成断开。
四次挥手的流程大概如下:
在这里插入图片描述

6、渲染页面

浏览器收到响应资源后对响应资源做分析,根据响应头状态码做相应操作,如果资源压缩,需要进行解压,之后将资源缓存,之后根据资源MIME类型去解析响应内容。
解析之后将内容渲染到页面上,渲染会分为HTMLStyleScript三部分,各个浏览器内核渲染过程大同小异。
渲染的流程大概如下:
在这里插入图片描述
这就是一个完整版的流程啦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值