zoukankan      html  css  js  c++  java
  • 从输入一个URL到页面加载完成前端都经历了什么?

    从URL到页面呈现出来大致分为两个部分:网络通信和页面渲染

    1.DNS域名解析

      浏览器能访问的资源都是通过IP访问的,但是为了方便我们记忆和使用网站都是使用的域名,所以当我们输入一个域名的时候就需要浏览器进行域名解析。浏览器解析域名的流程是先从浏览器缓存中查找是否有该域名,浏览器缓存中没有则从系统缓存中查找(系统缓存中查找主要是在本地host文件中查找),系统缓存中没有则从路由缓存中查找,路由缓存没有则从本地DNS服务器中查找,本地DNS服务器中没有则从其他DNS服务器中查找,其他服务器中查找的规则是递归查找,查找的顺序是(根域名服务器,一级域名服务器,二级域名服务器,三级域名服务器)

    2.三次握手

      域名解析成功之后,客户端和服务器端就会有三次握手,试探链接,用语义化的语言解释就是。

      客户端    ----》服务器端               你好,我们可以链接吗

           服务器端 ----》客户端                  可以,你确定要连接是吧?

      客户端----》服务器端                    确定,我们链接吧

    3.发送HTTP请求,接受HTTP响应

      连接成功之后就可以开始传输数据了,传输数据需要将用户输入的URL封装成HTTP Request请求报文,发送到服务器,服务器收到请求后会发出应答,即响应数据。

      HTTP请求报文格式:请求报头和请求主体。请求报头包括请求方式(GET/POST/DELETE/PUT)、请求资源路径、HTTP版本号,返回的信息是否需要缓存,以及客户端是否发送cookie等

      常见状态码 :

      

    4.断开TCP连接(4次挥手)

      客户端---》服务器端    好了,我们断开连接吧?

      服务端---》客户端     好的,我在检查一哈有没有需要在发给你的信息?

      服务端---》客户端   好了,我们可以断开连接了

      客户端---》服务端 好的

    5.浏览器解析HTML代码以构建DOM树-》构建渲染树-》布局渲染树-》绘制渲染树,渲染树只包括需要显示在页面中的DOM元素,像<head>元素或display属性值为none的元素都不在渲染树中,请求JS,CSS等资源,最后进行页面渲染,呈现给用户

      

  • 相关阅读:
    Leangoo:用敏捷开发管理思维做团队协作的SaaS软件
    张江男的逆袭,我如何使用leangoo提升团队效率
    探索leangoo常用快捷键
    Tkinter教程之Event篇(3)
    Tkinter教程之Event篇(2)
    Tkinter教程之Event篇(1)'
    Tkinter教程之Grid篇
    Tkinter教程之Pack篇
    Tkinter教程之Canvas篇(4)
    Tkinter教程之Canvas篇(3)
  • 原文地址:https://www.cnblogs.com/advanceCabbage/p/10837411.html
Copyright © 2011-2022 走看看