在把网站交给他人之前,要先确认分享出去的链接指向正确的公开网址。本文用基础的网址结构说明开发预览与正式站点的区别,并给出小企业服务站在交接前核对链接的可行步骤。

交接前核对分享链接

先看一个假设场景:一位第一次建站的读者正在准备一个小型企业服务网站,手里有一份简短的交接说明,上面列着三个候选链接标签:“服务概览”“联系信息”和“预约说明”。每个标签旁边都放着一个复制来的地址,这位读者要判断哪个地址应该留在说明里。一个候选地址可能带着很长的查询串,里面出现预览参数;另一个可能使用专门留给草稿的子域;第三个可能是打算公开的路径。真正的问题是:每个复制来的地址是否都指向公开位置,而不是某个预览位置;光看外表并不能决定这件事。

把这个例子说得更具体一些。假设这位读者有三个页面,标题分别是“上门支持”“索取报价”和“服务范围”。交接说明给每个页面各配一个地址。前两个地址以不同的路径结尾;第三个地址在问号后面多出一串字符。这位读者需要决定:是只替换第三个地址,还是把三个都重新核对一遍。这个例子是为了说明问题而自拟的,不是真实交接记录,也不是已完成的核对或测试结果。

一种实用的比较办法,是检查复制来的地址里有没有只与预览有关的主机名或查询值,然后在一个新的浏览器窗口中打开它,看出现的是哪个页面。这位读者也可以请同事在不登录的情况下打开同一个地址。仍未决定的是:交接说明里只放干净的公开地址,还是同时加一个简短标签写明页面标题,帮助接收方确认目的地。

认识网址的基本结构

网址是互联网上某个唯一资源的地址,浏览器用它来获取已经发布的资源,例如HTML页面。MDN的文章把网址拆成若干部分。最前面是协议,它表示浏览器请求资源时必须使用的协议;对网站来说,通常是HTTPS或HTTP。接下来是授权部分,它与协议之间用冒号加两个斜杠分隔。授权部分包含域名,域名指明正在请求哪一台Web服务器;它还可以包含端口,端口是访问该服务器上资源的技术入口。当服务器使用标准端口时,端口通常省略不写:HTTP用80,HTTPS用443。1

路径指明资源在Web服务器上的位置;在现代用法里,它多半只是服务器处理的一种抽象,并不对应物理文件位置。参数是以问号开头、用和号分隔的键值对,服务器可以在返回资源之前用它们做一些额外处理。锚点位于井号之后,是资源内部的“书签”:浏览器会滚动到HTML文档中的那个位置,而片段标识符不会随请求发送给服务器。在地址栏里,你必须提供完整的绝对网址,不过协议和端口常常可以省略。1

检查时先列出你自己那份简短的候选链接清单,而不是从地址栏开始。对一个企业服务网站来说,在每个复制来的地址旁边记下页面上可见的标题。如果一个候选地址以含预览字样的主机名开头,另一个以打算公开的主机名开头,你可以把看起来像预览的那个放到一边,把公开的那个留在交接说明里。这是作者用来说明方法的示例,并不是对任何在线服务的实际检测。

还有一项实用动作,是把路径和查询分开来读。你可以先写页面标题,再写路径,最后写问号后面的多余字符。如果某个候选地址带着只在你编辑会话里出现的字符串,可以考虑把它换成不带这些字符的普通页面地址,再把两个版本并排比较。最终选哪一个,仍由你自己决定。

区分预览地址与正式地址

拿一条你准备分享的链接,分两遍读,而不是一遍读完。第一遍看主机名之后第一个斜杠之前的部分:如果那里出现“preview”“staging”或“draft”之类的词,就该停下来想一想。第二遍读路径和问号后面的内容。把每一部分各写一行,先写页面标题,再写路径,最后写查询,这样你就能把两个候选地址并排比较。

作为一个假设性的核对,假设你的交接说明里同一个“索取报价”页面配了两个地址。其中一个在问号后面多带了一小串字符;另一个则在页面路径处干净收尾。你可以把干净的那个留作分享,把较长的那个放到一边,并在自己的清单里记下原因。选择权仍在你手里;关键在于你能说出是哪些字符引起了疑虑。

你也可以在发送前改写自己的句子。如果草稿里写的是“这是我们讨论过的链接”,可以考虑换成你选定的确切页面标题和干净路径,让接收方能把文字与页面上的内容对上。这些是作者的演示,不是固定规则。把你记录下来的疑问写短,并确保能用自己的材料回答;在交接之前决定好你要分享哪个候选地址。

核对超链接的目标

链接元素的href属性保存着这个超链接所指向的网址,而链接内的文字应当说明链接通往哪里。对于交接说明来说,目标本身就在href值里,因此要核对这个值,不能只看页面上可见的措辞。2

来源资料列出了几种可以作为href值的网址形式:以协议和主机开头的绝对网址、以来源为基准的相对网址、目录相对网址,以及上级目录相对网址(即以两点加斜杠回到上一级目录的写法)。来源资料没有描述单独的预览主机,所以不能单凭这份资料确认某个地址是不是预览地址;你能拿来做比较的,是资料中已经说明的这几种链接形式。2

对于交接说明里的三个链接标签,你可以在每个标签旁边加一行核对备注:写明你希望访问者最终看到哪个页面标题。例如,在“服务范围”旁边写上“应打开服务范围页面,而不是编辑视图”。然后把你预期的结果与准备分享的地址作比较,凡是地址看起来会通往别处的标签,都做上标记。你也可以把说明里的“报价页链接”改成“供访问者使用的报价页——打开索取表单”。把预期的访问目的地写在同一行,分享说明之前就更容易发现不一致。

假设案例:本地编辑器链接出错

把交接说明里的三个候选链接拿出来,逐一比较每个地址的主机部分和你真正想分享的页面的主机部分。你可以先写下页面标题,再复制主机,然后记下这个主机看起来是你印象中公开站点使用的主机,还是只在私下编辑时使用的主机。假设“索取报价”这一条指向的地址中,主机包含一个与预览有关的词,而“服务范围”这一条使用普通的公开主机。这个看得见的差别已经足够决定哪一条应当留在说明里;你可以把预览主机移到另一条单独的草稿行,只在标题旁边保留公开地址。

接着决定说明里每个链接周围该写什么,因为地址虽然正确,周围的文字仍可能造成误导。如果你的草稿写着“新版报价页面预览已准备好”,可以考虑把它改成“报价页面,公开地址”。这是作者的示范,不是一次真实修改的记录。然后你可以按接收方的视角把说明重读一遍:每个页面标题都应当只挨着一个地址;凡是无法与公开主机对应的地址,都应当删去,而不是留给接收方自己揣摩。

最后要决定剩下的条目怎么处理。你可以为自己保留一份简短的非公开地址清单,里面放工作用的预览地址,另设一份只含公开地址的交接清单。在发出任何内容之前,你可以只读交接清单,并问自己:这里的每个地址,是否都是你愿意当着客户的面打开的那一个?如果不是,那一条就需要你自己作出决定,而不是在说明里提醒接收方注意。

最后核对清单

把交接说明里的分享链接部分单独拿出来,在发送之前给其中每一条都做一次最终检查。你可以选择在每一行标记两样东西:访客应当落到哪个页面标题,以及你预期的公开站点主机部分。如果某一行里的主机仍然和你编辑时使用的地址一致,这一行就还不适合与其他行放在一起。这是一个简短的编辑取舍,不是新的技术步骤。

你也可以决定,移走预览地址之后它该如何处理。一种做法是另设一条私用记录,明确标注“不用于分享”,以免工作地址丢失。这样,你的交接部分就只保留通过你自己“标题与主机”比对的那些行。做完这一分离后,不妨再把整份说明通读一遍;读者应当能任选一行,就知道它会打开哪个页面,而不必再来问你。

常见问题

准备自己的候选链接清单时,该从哪里开始,而不是从地址栏开始?

从自己列的一份简短候选链接清单开始,而不是从地址栏开始。针对企业服务站,在每条复制的地址旁记下页面上可见的页面标题。

怎样在笔记里把每条复制链接的路径和查询部分分开记录?

更进一步的做法是分别阅读路径和查询部分。你可以先写页面标题,再写路径,最后写问号之后的多余字符。

在发送前最后一轮检查中,可以在交接笔记的分享链接部分给每条记录标注哪两样东西?

把交接笔记里的分享链接部分拿出来,在发送前给每条记录单独过一遍。你可以选择给每一行标注两样东西:访客应当落到哪个页面标题,以及你预期公开站点使用的主机部分。