• 前端面试之:从输入URL到页面加载完成是一个怎样的过程


      写下这篇文章留个纪念,各位前端的小伙伴也可以做个参考,也期待你们的补充。

      问:从输入URL到页面加载完成是一个怎样的过程?

      答:服务器启动好监听服务,准备迎接来自客户机的请求,

    1、输入地址

      当我们开始在浏览器中输入网址的时候,浏览器其实已经开始在智能的匹配可能得到的URL了,他会从历史记录、书签等地方,找到已经输入的字符串可能对应的URL,然后给出智能的提示,对于Google chrome这种聪明的浏览器,他甚至会直接从缓存中把网页展示出来,也就是说在你还没有戳下enter键的时候,页面就已经展示在你面前了,详细情况先不解释。

    2、浏览器查找域名的IP地址

      导航的第一步是找出访问域的IP地址,DNS查找过程如下:

      。浏览器缓存:浏览器缓存DNS记录一段时间,然而操作系统并没有告诉浏览器每个DNS记录的生存时间,因此浏览器会将其缓存一段固定的时间(一般在2到30分钟之间)

      。操作系统缓存:如果浏览器缓存不包含所需的记录,则浏览器进行系统调用(Windows中的gethostbyname)。操作系统有自己的缓存。

      。路由器缓存:请求继续到您的路由器,路由器通常具有自己的DNS缓存。

      。ISP DNS缓存:检查的下一个是ISP的DNS缓存,这里自然也会有一个缓存。

      。递归搜索:ISP的DNS服务器开始递归搜索,从根名称服务器通过.com顶级名称服务器到Facebook的名称服务器。通常来讲,DNS服务器将在缓存中具有.com名称服务器的名称,因此对根名称的服务器的命中是不必要的(不太明白。。。。)

    3、浏览器向web服务器发送一个http请求

      一般网页的动态主页不会存在于缓存中,因为动态页面都会有一个非常短暂的时间设为过期时间,因此浏览器会将此请求发往服务器,get请求命名要提取自己的URL(例如:http://baidu.com),浏览器识别自己的请求头,并说明自己接受哪一类类型的响应等

    4、服务器的永久重定向响应(从http://baidu.com 到 http://www.baidu.com)

      服务器收到请求后开始响应,将http://baidu.com重定向到 http://www.baidu.com

    5、浏览器跟踪重定向地址

      浏览器知道http://www.baidu.com是正确的URL,因此它会发出另一个get请求

    6、服务器处理请求

      服务器将受到get请求,处理它并发送回应

    7、服务器返回一个http响应

      服务器生成并发回响应,包含响应头,响应正文,缓存时间信息,以及其他信息

    8、浏览器显示HTML

    9、浏览器发送请求获取嵌入在HTML中的资源(如:图片、音频、视频、CSS、JS等)

    10、浏览器发送异步请求(如ajax请求)

    11、页面构建完成

  • 相关阅读:
    解决 git 同步时 Everything up-to-date
    vs2019 git Authentication failed for xxx
    vs2015发布项目到虚拟主机组策略阻止csc.exe程序问题
    vs2017 使用 reportviewer
    var,dynamic的用法
    水晶报表报无法在资源中找到报表,请重新创建项目 错误
    css隐藏元素的方法
    css-浮动与清除浮动的原理详解(清除浮动的原理你知道吗)
    正则并不适合严格查找子串
    浏览器加载、渲染过程总结
  • 原文地址:https://www.cnblogs.com/max-tlp/p/6827956.html
Copyright © 2020-2023  润新知