从输入一个url到加载页面发生了什么?

Posted zhouwenbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从输入一个url到加载页面发生了什么?相关的知识,希望对你有一定的参考价值。

  惭愧了,很久之前被面试的时候也有面试官问了我这个问题,但是当时回答的很不满意,于是回头看了很多资料,现在也整理一下。

  大致可总结为以下几个步骤:

  1. DNS解析。

  2. TCP链接。

  3. 发送HTTP请求。

  4. 服务器处理并且返回HTTP请求。

  5. 浏览器渲染界面。

  6. 连接结束

 

一 DNS解析

  简单点说就是寻找域名对应的IP的这个过程。在这个过程中经历了一下几个环节,浏览器缓存=>系统缓存=>路由器缓存=>IPS服务器缓存=>根域名服务器缓存=>顶级域名服务器缓存=>主域名服务器缓存。

  1. 浏览器缓存。在谷歌浏览器下搜索chrome://net-internals/#dns,可以看到dns缓存信息。

  2. 系统缓存。系统缓存可以在命令行中输入 vi  /etc/hosts (linux中),查看,并且设置,当然可以设置假的,用于本地调试。

  DNS负载均衡

  DNS可以返回一个合适的机器的IP给用户,例如可以根据每台机器的负载量,该机器离用户地理位置的距离等等,这种过程就是DNS负载均衡,又叫做DNS重定向。大家耳熟能详的CDN(Content Delivery Network)就是利用DNS的重定向技术,DNS服务器会返回一个跟用户最接近的点的IP地址给用户,CDN节点的服务器负责响应用户的请求,提供所需的内容。

二 TCP连接

  三次握手,确保连接可靠性。

三 HTTP相关

  当服务器与主机建立了连接之后,下面主机便与服务器进行通信。网页请求是一个单向请求的过程,即是一个主机向服务器请求数据,服务器返回相应的数据的过程。

  1. 浏览器根据 URL 内容生成 HTTP 请求,请求中包含请求文件的位置、请求文件的方式等等;

  2. 服务器接到请求后,会根据 HTTP 请求中的内容来决定如何获取相应的 html 文件;

  3. 服务器将得到的 HTML 文件发送给浏览器;

  4. 在浏览器还没有完全接收 HTML 文件时便开始渲染、显示网页;

  5. 在执行 HTML 中代码时,根据需要,浏览器会继续请求图片、CSS、JavsScript等文件,过程同请求 HTML ;

以上是关于从输入一个url到加载页面发生了什么?的主要内容,如果未能解决你的问题,请参考以下文章

从输入一个url到加载页面发生了什么?

一个页面从输入URL到加载显示完成,发生了什么?

一个页面从输入URL到页面加载显示完成,这个过程中发生了什么?

从输入URL到页面加载发生了什么

一个页面从输入URL 到页面加载显示完成的过程中都发生了什么

从输入URL到页面加载完成的过程中都发生了什么事情?