zoukankan      html  css  js  c++  java
  • 从输入 URL 到浏览器接收的过程中发生了什么事情?

    从输入 URL 到浏览器接收的过程中发生了什么事情?

    What really happens when you navigate to a URL

    上面两篇文章都解读的很好,值得阅读。

    接下来在总结一下这个过程:

        1、首先,会查询缓存,如果缓存存在的话则直接响应,否则继续下面过程;

        2、当发送一个URL请求时,不管这个URL是Web页面的URL还是Web页面上每个资源的URL,浏览器都会开启一个线程来处理这个请求,同时在远程DNS服务器上启动一个DNS查询。这能使浏览器获得请求对应的IP地址。DNS查找过程如下:浏览器缓存 、系统缓存、路由器缓存、ISP DNS 缓存、递归搜索

        3、浏览器与远程`Web`服务器通过`TCP`三次握手协商来建立一个`TCP/IP`连接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试建立起通信,而后服务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。

      4、一旦`TCP/IP`连接建立,浏览器会通过该连接向远程服务器发送`HTTP`的`GET`请求。远程服务器找到资源并使用HTTP响应返回该资源,值为200的HTTP响应状态表示一个正确的响应。

        5、此时,`Web`服务器提供资源服务,客户端开始下载资源。如果资源可缓存则存入缓存。

      6、响应返回后,便进入了我们关注的前端模块,浏览器决定如何处理这些响应(例如,它是HTML页面,一张图片,一段音乐)。简单来说,浏览器会解析`HTML`生成`DOM Tree`,其次会根据CSS生成CSS Rule Tree,而`javascript`又可以根据`DOM API`操作`DOM`

  • 相关阅读:
    elasticsearch如何设计索引
    LinkedList 的实现原理
    聊聊elasticsearch7.8的模板和动态映射
    elasticsearch7.8权限控制和规划
    cloudera manager server迁移
    2020年终总结
    工作两年半的一次复盘
    聊聊数据结构和算法
    AutoMapper源码解析
    [源码解析] 并行分布式框架 Celery 之 worker 启动 (2)
  • 原文地址:https://www.cnblogs.com/Chen-XiaoJun/p/6206021.html
Copyright © 2011-2022 走看看