Seeridia's Home

Back

从网站的上线开始讲起(二)Blur image

我就从 域名 → DNS → CDN → ESA 这条链路开始看看一个网站的上线,特别是在国内的网络环境下,如何保证用户能够快速、稳定地访问。不过本篇只会有域名和DNS,后续会补上CDN(这部分太多了)。

本文的部分内容和供图来自阿里云的 帮助文档

域名(Domain Name)#

概念#

域名就是互联网的“门牌号”,让人们可以用 文字 来访问网站,而不用记一长串 IP 地址。

举例:seeridia.top 其实只是一个名字,它背后最终会对应到服务器的 IP(例如 172.31.49.252 )。

域名属于 ICANN 统一管理,注册商(阿里云、腾讯云、Namecheap 等)相当于“代理商”。

关键知识点#

  1. 域名层级

    • 顶级域名(TLD): .com, .cn, .top
    • 二级域名:seeridia.top
    • 子域名:api.seeridia.top, cdn.seeridia.top

    注意:每一级域名都可以单独做解析配置。

  2. 域名注册与所有权

    注册域名后,获得一定年限的使用权。必须定期续费,否则可能被别人抢注。

  3. 域名系统依赖 DNS

    域名本身只是名字,必须依赖 DNS(域名系统)才能解析成 IP 地址,否则浏览器没法访问。

DNS(Domain Name System)#

作用:把人类可读的域名(seeridia.top)转换成计算机可用的 IP 地址(172.31.49.252

类比:就像电话簿,把“张三的名字”查成“张三的电话号码”

位置:DNS 位于整个访问链路的最开始,用户输入网址时,浏览器必须先通过 DNS 得到 IP 才能发起请求

解析流程#

  1. 用户在Web浏览器中输入 example.com , 向本地域名服务器发起查询请求。若本地域名服务器存在缓存的解析数据,则直接将域名对应的IP地址返回给Web浏览器,跳至步骤9。若本地域名服务器没有查到缓存的解析数据,则继续步骤2。
  2. 本地域名服务器向根域名服务器进行查询。
  3. 根域名服务器将 .com 顶级域名服务器的地址,返回给本地域名服务器。
  4. 本地域名服务器向 .com 顶级域名服务器发起 example.com 的查询请求。
  5. .com 顶级域名服务器将为 example.com 提供权威解析的权威域名服务器地址,返回给本地域名服务器。
  6. 本地域名服务器向权威域名服务器发起查询请求。
  7. 权威域名服务器将域名 example.com 对应的 IP 地址,返回给本地域名服务器。
  8. 本地域名服务器最后把查询的 IP 地址响应给 Web 浏览器。
  9. Web 浏览器通过 IP 地址访问网站服务器。
  10. 网站服务器返回网页信息。

相关概念#

  1. 递归与迭代查询(非递归)查询

    1. 递归查询:DNS 客户端(如你的电脑或手机)向 DNS 服务器发出请求,并要求该服务器必须返回最终结果。如果该服务器没有缓存答案,它就必须自己去“代表客户端”向其他服务器查询,直到获得最终的 IP 地址,然后返回给客户端。

      例如:你访问 www.example.com,你的电脑向本地 DNS 服务器(如 8.8.8.8)发送一个递归查询请求,如果 8.8.8.8 没有缓存,它会自己去一步步查(通过迭代方式),最终把结果返回给你。

      本地域名服务器(递归 DNS 服务器),主要来源:

      • ISP(网络服务提供商):如电信、联通、移动等提供的 DNS 服务器。
      • 公共 DNS 服务:如 Google DNS(8.8.8.8)、Cloudflare(1.1.1.1)、阿里 DNS(223.5.5.5)、腾讯 DNS(119.29.29.29)
      • 企业/校园内部 DNS:公司或学校自建的 DNS 服务器
    2. 迭代查询: DNS 服务器不会替客户端继续查询,而是返回一个“可能知道答案”的其他 DNS 服务器地址,让客户端(或上游服务器)自己去问下一个服务器。

  2. TTL(Time To Live)

    • 本地域名服务器(递归 DNS 服务器)在拿到 IP 后,会把这个结果缓存起来,TTL 就代表域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。
    • 比如 TTL=600 → 递归 DNS 缓存 10 分钟,10 分钟后才会重新问权威 DNS。
    • TTL 太长:改配置要等很久才生效。
    • TTL 太短:查询太频繁,延迟增加。
  3. DNS 缓存

    1. 本地 DNS 缓存:浏览器和操作系统会缓存 DNS 解析结果,减少重复查询。
    2. 递归 DNS 缓存:递归 DNS 服务器会缓存查询结果,减少对权威 DNS 的请求。

记录类型#

类型作用示例使用场景
A把域名解析到 IPv4 地址seeridia.top → 203.0.113.10网站直连服务器,最常见的解析方式
AAAA把域名解析到 IPv6 地址seeridia.top → 2400:3200::1网站支持 IPv6 访问
CNAME把域名解析到另一个域名(别名)www.seeridia.top → seeridia.top
cdn.seeridia.top → cdn.edgeone.com
CDN/ESA 接入、统一指向一个目标域名
MX指定邮件服务器seeridia.top → mail.seeridia.top (优先级 10)Gmail/Outlook 企业邮箱,自建邮箱
TXT存放文本信息(验证/策略)seeridia.top TXT "v=spf1 include:_spf.google.com ~all"域名验证、邮件安全(SPF/DKIM/DMARC)
NS指定权威 DNS 服务器seeridia.top → ns1.dnsprovider.com决定谁负责解析该域名(域名商 / DNS 服务商),一般用于将子域名交给其他 DNS 服务商解析

另外,还有一些其他类型的记录,如 SRV(服务定位)、PTR(反向解析)、CAA(签发证书)等,但不常用。

CNAME 与 重定向 并不同

CNAME 其实是说:这个域名其实是另一个域名的别名

对比项CNAME 记录HTTP 重定向 (301/302)
发生位置DNS 层(浏览器还没发请求)HTTP 层(浏览器已经访问服务器)
返回内容返回另一个域名,继续解析 IP返回新的 URL,让浏览器重新请求
用户是否可见对用户不可见,用户输入的域名不变用户地址栏会跳转到新的 URL
使用目的域名别名、接入 CDN、统一解析网站迁移、SEO、内容跳转
从网站的上线开始讲起(二)
https://blog.seeridia.top/blog/website-launched-2
Author Seeridia
Published at 2025年8月22日
Comment seems to stuck. Try to refresh?✨