从输入URL到浏览器显示页面的详细过程

一般可分为如下 7 个步骤:

1、浏览器中输入网址。

2、发送至 DNS 服务器并获得域名对应的 WEB 服务器的 ip 地址。

DNS 解析首先会从你的浏览器的缓存中去寻找是否有这个网址对应的 IP 地址,如果没有就向OS系统的 DNS 缓存中寻找,如果没有就是路由器的 DNS 缓存, 如果没有就是 ISP 的DNS 缓存中寻找。
所以,缓存的寻找过程就是: 浏览器 -> 系统 -> 路由器 -> ISP。
如果在某一个缓存中找到的话,就直接跳到下一步。
如果都没有找到的话,就会向 ISP 或者公共的域名解析服务发起 DNS 查找请求。这个查找的过程还是一个递归查询的过程。

3、与 WEB 服务器建立 TCP 连接。

TCP 协议通过三次握手建立连接。

  1.     客户端通过 SYN 报文段发送连接请求,确定服务端是否开启端口准备连接。状态设置为 SYN_SEND;
  2.     服务器如果有开着的端口并且决定接受连接,就会返回一个 SYN+ACK 报文段给客户端,状态设置为 SYN_RECV;
  3.    客户端收到服务器的 SYN+ACK 报文段,向服务器发送 ACK 报文段表示确认。此时客户端和服务器都设置为 ESTABLISHED     状态。连接建立,可以开始数据传输了。

4、浏览器向 WEB 服务器的 ip 地址发送相应的 http 请求。

通常的请求行是: 请求的方式(“get”或“post”) + 请求的资源的位置(url) + HTTP/[版本号](HTTP/1.1)

5、WEB 服务器响应请求并返回指定 URL 的数据,或错误信息,如果设定重定向,则重定向到新的 URL 地址。

6、浏览器下载数据后解析 HTML 源文件,解析的过程中实现对页面的排版,解析完成后在浏览器中显示基础页面。

        浏览器渲染页面过程:点击打开链接

        浏览器解析HTML文档过程:点击打开链接

7、分析页面中的超链接并显示在当前页面,重复以上过程直至无超链接需要发送,完成全部显示。

猜你喜欢

转载自blog.csdn.net/alan_1550587588/article/details/80300560