从输入URL到页面展示中到底发生了什么

1.在浏览器中输入指定网页的 URL

1.1 URL的组成结构

URL的组成结构

  1. 协议。URL 的前缀通常表示了该网址采用了何种应用层协议,通常有两种——HTTP 和 HTTPS。当然也有一些不太常见的前缀头,比如文件传输时用到的ftp:
  2. 域名。域名便是访问网址的通用名,这里也有可能是网址的 IP 地址,域名可以理解为 IP 地址的可读版本,毕竟绝大部分人都不会选择记住一个网址的 IP 地址。
  3. 端口。如果指明了访问网址的端口的话,端口会紧跟在域名后面,并用一个冒号隔开。
  4. 资源路径。域名(端口)后紧跟的就是资源路径,从第一个/开始,表示从服务器上根目录开始进行索引到的文件路径,。
  5. 参数。参数是浏览器在向服务器提交请求时,在 URL 中附带的参数。服务器解析请求时,会提取这些参数。参数采用键值对的形式key=value,每一个键值对使用&隔开。
  6. 锚点。锚点顾名思义,是在要访问的页面上的一个锚。要访问的页面大部分都多于一页,如果指定了锚点,那么在客户端显示该网页是就会定位到锚点处,相当于一个小书签。值得一提的是,在 URL 中,锚点以#开头,并且不会用于请求的一部分发送给服务端。

2.浏览器通过 DNS 协议,获取域名对应的 IP 地址

1.首先,主机向本地 DNS 服务器发送一个 DNS 请求,该查询报文包含被转换的域名。

2.本地 DNS 服务器检查本机缓存,发现并无记录,也不知道域名的 IP 地址该在何处,不得不向根服务器发送请求。

3.根服务器注意到请求报文中含有某个顶级域,告诉本地 DNS,你可以向某个顶级域的 TLD DNS 发送请求,因为目标域名的 IP 地址很可能在那里。

4.本地 DNS 获取到了某个顶级域的 TLD DNS 服务器地址,向其发送请求,询问域名的 IP 地址。

5.某个顶级域的 TLD DNS 服务器仍不清楚请求域名的 IP 地址,但是它注意到该域名有某个前缀,因此返回告知本地 DNS,该前缀的权威服务器可能记录了目标域名的 IP 地址。

6.这一次,本地 DNS 将请求发送给权威 DNS 服务器域名。

7.终于,由于域名向权威 DNS 服务器备案过,在这里有它的 IP 地址记录,权威 DNS 成功地将 IP 地址返回给本地 DNS。

8.最后,本地 DNS 获取到了目标域名的 IP 地址,将其返回给请求主机。

3.浏览器根据 IP 地址和端口号,向目标服务器发起一个 TCP 连接请求

4.浏览器在 TCP 连接上,向服务器发送一个 HTTP 请求报文,请求获取网页的内容

5.服务器收到 HTTP 请求报文后,处理请求,并返回 HTTP 响应报文给浏览器

6.浏览器收到 HTTP 响应报文后,解析响应体中的 HTML 代码,渲染网页的结构和样式,同时根据 HTML 中的其他资源的 URL(如图片、CSS、JS 等),再次发起 HTTP 请求,获取这些资源的内容,直到网页完全加载显示

7.浏览器在不需要和服务器通信时,可以主动关闭 TCP 连接,或者等待服务器的关闭请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值