浏览器从输入 url 到显示网页的全过程

浏览器从输入 url 到显示网页的全过程

  • 浏览器从输入 url 到显示网页的全过程
  • DNS(Domain Name System)解析

浏览器从输入 url 到显示网页的全过程

当你在浏览器中输入一个URL并按下Enter键,以下是浏览器为显示网页所执行的一系列步骤:

  1. 域名解析 (DNS解析):

    • 浏览器首先检查本地缓存,看是否已经有这个域名的IP地址。
    • 如果没有,它会发送请求给系统配置的DNS服务器。如果那个DNS服务器也没有缓存的结果,那么这个解析请求可能会被转发到其他DNS服务器。
    • 一旦IP地址被找到,它将被返回到浏览器。
  2. 建立TCP连接:

    • 浏览器与web服务器建立一个TCP连接,这通常是在HTTP默认的端口80或HTTPS的默认端口443上。
    • 这包括一个三次握手。
  3. 发送HTTP请求:

    • 浏览器发送一个HTTP请求到服务器。这个请求包括请求方法(如GET、POST等)、headers和可能的请求体。
  4. 处理HTTP响应:

    • 服务器处理请求并返回一个HTTP响应。响应包含一个状态码(如200表示成功,404表示未找到),响应头部和响应体(通常是请求的HTML页面)。
  5. HTTPS握手 (如果是https://请求):

    • 在交换实际的HTTP数据之前,客户端和服务器会进行一个TLS/SSL握手,以确保之后的通信是加密和安全的。
  6. 渲染页面:

    • 浏览器开始解析HTML,并构建DOM树。
    • 并行地,浏览器会解析CSS,并构建CSSOM树。
    • DOM树和CSSOM树结合后,形成一个渲染树。
    • 之后,浏览器开始布局渲染树,并计算每个节点的几何位置。
    • 最后,浏览器绘制渲染树到屏幕上。
  7. 执行JavaScript:

    • 如果HTML中引用了JavaScript,浏览器会执行它。JavaScript可能会修改DOM和CSSOM,这可能会导致浏览器重新布局和重新绘制页面。
  8. 加载外部资源:

    • 页面中可能包含其他资源(如图像、CSS、JavaScript文件)。浏览器会为这些资源发出额外的HTTP请求。注意,这些请求可能会因为浏览器的缓存机制或因为数据已被内联到HTML中而被省略。

以上是从输入URL到显示页面的简化过程。这个过程更加复杂,涉及到多种技术、优化和异常处理策略。

DNS(Domain Name System)解析

DNS(Domain Name System)解析是一种将人类可读的域名(例如 www.example.com)转换为与之相关的IP地址(例如 192.0.2.1)的过程。这个转换过程是互联网上的基本操作,因为计算机和其他设备使用IP地址来识别和访问彼此。

以下是DNS解析的基本概念和过程:

  1. 用户请求:当你在浏览器中输入一个网址或通过其他方式尝试访问一个域名时,你的计算机会开始一个DNS解析的请求。

  2. 查询本地缓存:首先,计算机会检查它自己的本地DNS缓存,看看它是否已经知道这个域名的IP地址。如果知道,它会直接使用那个地址。

  3. 递归查询:如果本地缓存中没有答案,计算机会向设置的DNS服务器(通常是由你的互联网服务提供商提供或是一个公共DNS服务器如Google的8.8.8.8)发送一个查询请求。这个DNS服务器会执行递归查询,意味着它会代替你的计算机去找出域名的IP地址。

  4. 迭代查询:如果DNS服务器也不知道答案,它会进行迭代查询,从根DNS服务器开始,然后是顶级域(TLD)服务器,接着是第二级域的名称服务器,直到找到具有所需IP地址的权威名称服务器为止。

  5. 返回IP地址:一旦找到IP地址,DNS服务器会将其返回给请求的计算机,并可能在其本地缓存中保存该信息,以便将来快速响应同样的请求。

  6. 连接到目标IP:现在,你的计算机知道了目标IP地址,它就可以通过IP地址开始与目标服务器建立连接,从而获取网站内容或进行其他相关操作。

通过这个系统,人们可以通过易于记忆的域名(如openai.com)而不是难以记忆的IP地址(如 203.0.113.5)来访问互联网上的资源。

你可能感兴趣的:(字节面试题,前端)