美文网首页
从浏览器输入url到显示内容都发生了什么?

从浏览器输入url到显示内容都发生了什么?

作者: Viewwei | 来源:发表于2022-06-25 15:53 被阅读0次

    从URL到显示内容简单来说可以分为以下6个步骤

    • DNS解析:将域名解析成IP地址
    • TCP连接 TCP三次握手
    • 发送HTTP请求
    • 服务器处理请求并返回HTTP报文
    • 浏览器解析渲染页面
    • 断开连接

    DNS解析

    在浏览器输入网址之后,首先要经过域名解析,因为浏览器不能直接通过域名找到相应的服务器,而是通过IP地址。
    DNS协议提供通过域名查找IP地址,或者逆向从IP地址反查域名的服务,DNS是一个网络服务器,我们的域名解析简单的来说就是在DNS上记录一条信息记录

    如何通过域名查询URL对应的IP

    浏览器首先会通过浏览器的缓存来查找,因为浏览器会按照一定的频率缓存DNS记录。如果在浏览器中没有找到,则会到操作系统中查找,操作系统中没有找到会到到路由缓存中查找,然后在是ISP的DNS服务器中查找。ISP有专门的DNS服务器对DNS查询请求。如果在ISP的DNS服务器中没有找到,则会向根服务器中查找
    浏览器通过向DNS服务器发送域名,DNS服务器查询到与域名想对应的IP地址,然后返回给浏览器,浏览器再将IP地址打在协议上,同时请求参数也会在协议搭载,然后一并发送给对应的服务器。

    TCP

    在客户端发送数据之前,会发起TCP三次握手用以同步客户端和服务端的序列号和确认号,并交互TCP窗口的大小信息

    为什么需要三次握手

    三次握手是保证双方互相明确对方能发能收的最小次数,也能够防止失效连接请求报文段突然又传送给服务器,因而产生错误

    发送HTTP请求

    TCP三次握手结束后,开始发送HTTP请求报文。请求报文由请求行、请求头和请求体三部分组成

    • 请求行
      请求行包括请求方式,请求地址和协议版本号
    • 请求头
      请求的附加信息,由关键字/值对组成
    • 请求体
      承载多个请求参数的数据

    服务器处理请求并返回HTTP报文

    服务器是网络环境中的高性能计算机。它监听网络上其他计算机提交的服务请求,并提供相应的服务。监听请求主要是靠web server担任管控角色。

    Http响应报文

    响应报文由响应行、响应头部和响应主体三个部分组成

    • 响应行
      响应行包括协议版本、状态码和状态描述
      状态码规则
      1xx 知识信息 表示请求已经接收,继续处理
      2.xx 成功,表示请求被成功接收
      3.xx重定向
      4.xx客户端错误
      5.xx 服务端错误

    浏览器解析渲染

    浏览器渲染解析简单的来说分为以下四部,第一步把HTML解析成DOM Tree,第二步把样式生成渲染树(render tree),第三步组织render tree试图。第四步UI后台程序绘制。
    具体的步骤如下

    • 解析HTML文档的时候,把HTML文档解析成Content tree,同时把HTML中的节点转换成树中的节点即DOM节点,同时也会解析HTML中的样式表,包括内部样式和外部样式,渲染引擎会把样式转换成渲染树(render tree).Render Tree可视化属性包括颜色、尺寸等信息。这些矩形盒子都是按照在屏幕上的显示顺序排序
      在构建完渲染树之后,将会进行Layout过程。这一过程将就是给每一个节点设置在屏幕上显示正确的坐标位置。下一个阶段就是绘制阶段(Paint)渲染树将会通过UI后台处理层,每一个节点都将绘制。
      精简CSS可以加快CSS规则树的构建,从而加快相应的速度
      在Layout的过程中首先会对节点进行布局,通过渲染树中渲染对象的信息,计算出每一个渲染对象的位置和尺寸。在布局完成之后,发现某个部分发生变化,影响布局,那么就需要重新渲染
      在计算好节点在屏幕上的位置之后,系统会遍历呈现树,并调用呈现器的paint方法,将呈现器的内容显示在屏幕上,这个过程中,会不断的触发重绘和回流的过程。重绘就是某个元素的背景颜色、文字颜色等,不影响周围或者内部布局的属性,将会引发浏览器的重绘。回流,某个元素尺寸发生变化,则重新计算渲染树,重新渲染

    断开连接

    当数据传送完毕,需要断开tcp连接

    相关文章

      网友评论

          本文标题:从浏览器输入url到显示内容都发生了什么?

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