深入浅出篇 — 域名 & DNS解析

774 阅读3分钟

域名与DNS解析知识问答:

  1. 能通过域名直接访问到一台机器吗 --- 不可以
  2. 那为甚么要用域名 --- IP地址不好记
  3. 那域名访问怎么成功的呢 --- 用域名和IP形成对应关系
  4. 什么是DNS --- 把域名翻译成IP地址的软件称为域名系统,即DNS
  5. 计算机是不知道域名对应的IP的
  6. 但每个路由器里都有一个Ip的域名映射表,若认识这个Ip,路由器就直接返回Ip,计算机就访问这个Ip

从输入url至页面完成渲染的经历了什么:

一.DNS解析

  • 首先看浏览器缓存
  • 然后看本机host
  • 然后看家里的路由器
  • 问路由器,若路由器认识这个域名,就返回一个IP,然后计算机访问这个IP
  • 若路由器不认识,他就问上一层路由器 (如自己家楼的路由器)
  • 问城市这个级别的路由器,即LDNS服务器(本地DNS解析器)
  • 如果LDNS服务器不认识这个域名,继续向上级DNS服务器查找-即gDNS服务器(全球DNS解析器)
  • 互联网建立的时候,共创建了13台总的DNS服务器,找到总的DNS服务器时一定会找到映射的(一般找不到)
  • 找到结果后就会把IP和域名惊醒缓存缓存加到上面的层,(但除了本机host,其不缓存)

二. 建立TCP连接-3次握手

  1. 第一次握手,由浏览器发起,告诉服务器我要发送请求
  2. 第二次握手,由服务器发起,告诉浏览器我准备接收了,你赶紧发吧
  3. 第三次握手,由浏览器发送,告诉服务器我马上就发了,准备接收吧

三. 发送请求

  • 请求报文 , http协议通信内容

四. 接收响应

  • 响应报文

五. 渲染页面

  • 遇见HTML标记,浏览器调用HTML解析器解析成Token并构建成dom树
  • 遇见style/link标记,浏览器调用css解析器,处理css标记并构建cssom树
  • 遇见script标记,调用javascript解析,处理script代码(绑定事件,修改dom树/cssom树)
  • 将dom树和cssom树合并成一个渲染树
  • 根据渲染树来计算布局,计算每个节点的几何信息(布局)
  • 将各个节点颜色绘制到屏幕上(渲染)
注:
这5个步骤不一定按照顺序执行,如果dom树或cssom树被修改了,可能会执行多次布局和渲染,往往实际页面中,这些步骤都会执行多次的

六. 断开连接,TCP四次挥手

  • 第一次挥手,由浏览器发起,发送给服务器,我东西发完了(请求报文),你准备关闭吧
  • 第二次挥手,由服务器发起,告诉浏览器,我东西接收完了(请求报文 ),我准备关闭了,你也准备吧
  • 第三次挥手, 由服务器发起,告诉浏览器,我东西发送完了(响应报文),你准备关闭吧
  • 第四次挥手 ,由浏览器发起,告诉服务器,我准备关闭了(响应报文),你也准备吧