从输入URL到页面展示,这中间发生了什么

123 阅读2分钟

从输入URL到页面展示,这中间发生了什么

1. DNS域名解析

1.1 DNS域名解析的过程是怎样的

  1. 先查找浏览器DNS缓存
  2. 再查找操作系统DNS缓存(操作系统dnscache clinet 服务进行DNS缓存的)
  3. 查找hosts文件中的域名记录
  4. 访问非权威域名服务器查找域名
  5. 访问DNS解析域名:比如访问“www.apple.com”的查询过程
    1. 根域名服务器
    • 访问根域名服务器,它会告诉你“com”顶级域名服务器的地址
    • 管理顶级域名服务器,返回“com”“net”“cn”等顶级域名服务器的 IP 地址
    1. 顶级域名服务器
    • 访问“com”顶级域名服务器,它再告诉你“apple.com”域名服务器的地址
    • 管理各自域名下的权威域名服务器,比如 com 顶级域名服务器可以返回 apple.com 域名服务器的 IP 地址;
    1. 权威域名服务器
    • 最后访问“apple.com”域名服务器,就得到了“www.apple.com”的地址。
    • 管理自己域名下主机的 IP 地址,比如 apple.com 权威域名服务器可以返回 www.apple.com 的 IP 地址。

1.2 有哪些非权威域名服务器

  • 三大运营商DNS
  • 谷歌公开的DNS
  • 微软公开的DNS
  • LDNS(企业内网DNS服务器)

1.3 DNS解析的ip地址是否是固定的

不是固定的,一般为了保证服务器稳定,会部署多个机器ip,保证负载均衡

DNS 解析同一个域名可以返回不同的 IP 地址

1.4 DNS是怎么做到负载均衡的呢

根据请求来源 IP,解析成距离用户最近的服务器地址:

北方的用户访问北京的机房,南方的用户访问深圳的机房

1.5 DNS缓存的优缺点有哪些

优点:

  • 简单、成本低:负载均衡工作交给 DNS 服务器处理,无须自己开发或者维护负载均衡设备。
  • 就近访问,提升访问速度

缺点:

  • 更新不及时:DNS 缓存的时间比较长,修改 DNS 配置后,由于缓存的原因,还是有很多用户会继续访问修改前的 IP,这样的访问会失败
  • 扩展性差:DNS 负载均衡的控制权在域名商那里,无法根据业务特点针对其做更多的定制化功能和扩展特性。
  • 分配策略比较简单:DNS 负载均衡支持的算法少;不能根据系统与服务的状态来判断负载;也无法感知后端服务器的状态。

1.6 除了DNS负载均衡,还有哪些负载均衡方式

  • 硬件负载均衡:F5 和 A10设备
  • 软件负载均衡:Nginx 和 LVS Nginx 是软件的 7 层负载均衡,LVS 是 Linux 内核的 4 层负载均衡

2. TCP三次握手建立连接

3. 发起http请求

4. 返回响应结果

5. 渲染DOM树、CSSOM树