美文网首页
面试题:说说地址栏输入 URL 敲下回车后发生了什么?

面试题:说说地址栏输入 URL 敲下回车后发生了什么?

作者: 生命里那束光 | 来源:发表于2022-06-14 15:08 被阅读0次

    一、简单分析

    简单的分析,从输入 URL到回车后发生的行为如下:

    • URL解析
    • DNS 查询
    • TCP 连接
    • HTTP 请求
    • 响应请求
    • 页面渲染

    二、详细分析

    1. URL解析

    首先判断你输入的是一个合法的URL 还是一个待搜索的关键词,并且根据你输入的内容进行对应操作

    • URL的解析第过程中的第一步,一个url的结构解析如下:
    2. DNS查询
    • DNS(Domain Names System),域名系统,是互联网一项服务,是进行域名和与之相对应的 IP 地址进行转换的服务器。
    • 最终,获取到了域名对应的目标服务器IP地址
    3. TCP连接

    tcp是一种面向有连接的传输层协议

    在确定目标服务器服务器的IP地址后,则经历三次握手建立TCP连接,流程如下:

    4. 发送 http 请求

    当建立tcp连接之后,就可以在这基础上进行通信,浏览器发送 http 请求到目标服务器
    请求的内容包括:

    • 请求行
    • 请求头
    • 请求主体
    5. 响应请求

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

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

    在服务器响应之后,由于现在http默认开始长连接keep-alive,当页面关闭之后,tcp链接则会经过四次挥手完成断开。

    6. 页面渲染

    当浏览器接收到服务器响应的资源后,首先会对资源进行解析:

    • 查看响应头的信息,根据不同的指示做对应处理,比如重定向,存储cookie,解压gzip,缓存资源等等
    • 查看响应头的 Content-Type的值,根据不同的资源类型采用不同的解析方式

    三、浏览器页面渲染

    从左往右,从上往下

    • 解析HTML,构建 DOM 树。
    • 解析 CSS ,生成 CSS 规则树。
    • 合并 DOM 树和 CSS 规则,生成 render 树。
    • 布局 render 树( Layout / reflow ),负责各元素尺寸、位置的计算。
    • 绘制 render 树( paint ),绘制页面像素信息。
    • 浏览器会将各层的信息发送给 GPU,GPU 会将各层合成( composite ),显示在屏幕上。

    相关文章

      网友评论

          本文标题:面试题:说说地址栏输入 URL 敲下回车后发生了什么?

          本文链接:https://www.haomeiwen.com/subject/yvszmrtx.html