如果你正在准备上线第一个网站,理解域名和完整URL的区别是最早需要完成的实际步骤之一。这两个术语在日常交流中经常被混用,但它们指的是不同的东西,在访客访问你的内容时承担不同的角色。本文将逐一拆解两者的结构,用一个假设地址演示各部分如何组合,并提供上线前可以执行的具体核对方法。

逐段阅读一个网站地址

假设你正在搭建一个小型摄影作品集网站,计划使用地址 https://www.example-photos.com/gallery/landscapes?page=2#sunset。这是一个为说明而创建的假设地址,并非真实注册的域名。从左往右阅读,第一段 https 是协议方案,告诉浏览器请求资源时应使用哪种协议。接下来的 www.example-photos.com 是授权部分,标识具体的网络服务器。在授权部分内部,example-photos.com 是域名本身,www 是一个子域标签。授权部分之后的 /gallery/landscapes 是路径,指向该服务器上的某个特定资源。?page=2 是查询参数,向服务器提供额外信息以决定返回什么内容。最后,#sunset 是锚点,指引浏览器定位到返回文档中的某个具体位置。1

这样拆解地址可以发现,域名只是完整URL中的一个组成部分。域名标识服务器,而URL的其余部分则指定浏览器应当获取该服务器上的哪个具体资源。只在地址栏输入 example-photos.com 的访客会到达站点的默认页面,而上面那个完整URL则指向一个特定的图库分区、某一页结果以及该页面内的一个命名锚点。1

在构建任何内部链接或导航菜单之前,先把你打算公开分享的完整地址写下来。将每个部分与上述结构逐一对照,可以帮助你发现缺失的斜杠、错误的参数名称或与文档中任何标题不匹配的锚点。这个简单的习惯能够在上线前捕获原本要到发布后才会暴露的错误。

域名的结构

域名是互联网基础设施的关键组成部分,因为它们为互联网上任何可用的网络服务器提供了人类可读的地址。计算机通过IP地址(如192.0.2.172)进行通信,但这些数字串对人类来说难以记忆,而且可能随时间变化。域名通过将易记的文本标签映射到底层的数字地址来解决这个问题。2

域名由多个部分组成,各部分以点号分隔,从右向左阅读。最右边的部分是顶级域,即TLD。TLD告诉用户域名背后服务的一般用途。最通用的TLD如 .com、.org 和 .net 不要求网络服务满足任何特定条件,而另一些则执行更严格的政策。例如,.gov 仅允许政府部门使用,.edu 保留给教育和学术机构。国家代码TLD如 .us 或 .fr 是为特定国家或地区设立的两个字符域名。23

TLD之后的标签是不区分大小写的字符序列,长度从一个到六十三个字符不等,只能包含字母A到Z、数字0到9以及连字符,且连字符不能出现在标签的第一个或最后一个位置。紧邻TLD左侧的标签称为二级域名。对于你控制的任何域名,你可以创建子域,每个子域下放置不同的内容,就像 developer.mozilla.org 和 support.mozilla.org 都是 mozilla.org 的子域一样。2

URL与域名的区别

URL是互联网上唯一资源的地址,是浏览器用来获取已发布资源(如HTML页面、CSS文档和图片)的关键机制之一。理论上,每个有效的URL都指向一个唯一的资源。域名只是URL内部的一个组成部分。一个完整的URL还包含协议方案,以及可选的路径、参数和锚点。1

协议方案指示浏览器请求资源时必须使用的协议。对于网站来说,这通常是HTTPS或其未加密版本HTTP。授权部分紧跟在协议方案之后,包含域名和可选的端口号。当网络服务器使用标准端口时,端口通常被省略,HTTP的标准端口是80,HTTPS的是443。路径标识服务器上的特定资源,在现代网络开发中,它主要是由网络服务器处理的抽象概念,背后不一定对应任何物理文件位置。1

参数出现在问号之后,由以和号分隔的键值对组成。网络服务器可以使用这些参数在返回资源之前执行额外处理。锚点以井号标记,代表资源内部的一个书签,为浏览器提供显示该特定位置内容的指引。井号之后的片段标识符永远不会随请求发送到服务器,这意味着它只影响浏览器在本地显示的内容。1

域名如何连接到服务器

当你在浏览器地址栏中输入一个域名时,一个查找过程就开始了。浏览器首先询问你的计算机是否已经识别出该域名对应的IP地址,使用的是本地DNS缓存。如果计算机找到了匹配项,域名就被转换为IP地址,浏览器直接与网络服务器协商内容。2

如果你的计算机尚不知道域名背后是哪个IP地址,它会查询一台DNS服务器,而DNS服务器的职责恰恰就是告诉你的计算机每个已注册域名对应哪个IP地址。一旦计算机获得了所请求的IP地址,浏览器就可以与网络服务器协商内容。这整个过程在后台发生,通常在页面开始加载之前就已经完成。2

ICANN指定组织来管理每个TLD,完整的TLD列表也由ICANN维护。根据管理组织的严格程度不同,TLD通常可以作为网站用途、所有权或所属国家/地区的线索。这个分层体系确保每个已注册的域名都映射到一组唯一的DNS记录,将访客引导到正确的服务器。32

选择和注册域名

你无法永久买下一个域名。相反,你付费获得在一定期限内使用某个域名的权利。你可以续期,且你的续期优先于其他人的申请,但你永远不会真正拥有这个域名。这种安排确保未使用的域名最终可以被其他人注册使用。2

在围绕某个域名投入时间设计网站之前,先检查该域名是否可用。大多数注册商在其网站上提供whois查询服务,可以告诉你一个域名是否已被注册。另外,如果你使用的系统带有内置命令行,也可以直接输入whois命令查询数据库。如果查询没有返回结果,说明该域名不存在于whois数据库中,可以被注册。2

在开始注册流程之前,记录几个备选名称。注册表单要求你填写所有必要信息,你应当确保没有拼错想要的域名,因为一旦付费完成,就无法更改而只能重新来过。注册商还会要求你填写真实地址,应当如实填写,因为在某些国家/地区,如果注册商无法提供有效地址,可能会被要求关闭该域名。2

上线前的实际核对

使用第一节的结构拆解方法来验证你计划发布的每一个地址。确认协议方案是HTTPS而非HTTP,确认域名与你注册的完全一致(包括任何子域标签),确认路径对应服务器上实际存在的页面。路径中一个错位的斜杠或一个拼错的标签都会导致访客看到错误页面。1

语义化URL使用具有内在含义的词语,任何人都能理解,无论其技术水平如何。创建人类可读的URL有多项优势:它们更容易被你操作,能帮助用户清楚地了解自己所处的位置和正在阅读的内容,某些搜索引擎也可以利用这些语义信息来改善相关页面的分类。在规划站点结构时,选择能描述内容的路径片段,而不是随机字符串或自动生成的标识符。1

列出你打算公开访问的每一个页面,并为每个页面写出完整的绝对URL。然后在浏览器中逐一测试每个URL,确认它加载了正确的资源。如果你的站点使用了参数或锚点,需要单独验证它们,因为片段标识符永远不会发送到服务器,一个失效的锚点不会产生服务器错误,但访客看到的却毫无用处。这种清单式核对方法能在真实访客遇到之前捕获大多数与地址相关的问题。1

常见问题

域名和URL是同一个东西吗?

不是。域名标识网络服务器,而URL是特定资源的完整地址。一个URL包含域名以及协议方案、路径、参数和锚点等其他部分。1

我可以永久拥有一个域名吗?

不可以。你付费获得在一定期限内使用域名的权利,并且可以续期,但你永远不会真正拥有这个名称。如果你停止续期,该域名最终会变为可供他人注册的状态。2

域名标签中允许使用哪些字符?

每个标签只能包含字母A到Z、数字0到9以及连字符。连字符不能出现在标签的第一个或最后一个位置,且标签不区分大小写。2