让我们逐一细分网址
精美的新Web服务的广告系列吸引了您的注意。 您解锁手机,选择喜欢的互联网浏览器,然后输入URL以尽可能地记住它。 一秒钟或几秒钟后(取决于您的电话运营商)—瞧,一个崭新的网页已经在您眼前!
这个故事可以追溯到很久以前(或者至少在1990年代后期),但是您能否解释一下URL的关键组成部分如何发挥作用? 如果您想成为Web开发人员,这是您必须知道的非常基本的概念。 让我们看看。
什么是网址?
URL是"统一资源定位器"的缩写。 顾名思义,URL详细描述了Web上唯一资源的特定位置,并被浏览器用来检索该位置上任何已发布的资源。 通常将URL与街道地址进行比较,URL的每个部分都用作地址的不同部分并代表不同的信息。 让我们看一下这个示例URL并将其细分:
方案 Scheme
http:// :这是方案,它标识浏览器在URL上请求数据所必须使用的协议(协议是通过Internet发送数据的规则)。 方案很多,但是http(不带SSL)与https(带SSL)最常见,HTTP是用于敏感数据的HTTP协议的安全版本。 冒号:是方案分隔符,正斜杠//建立域名的开头。
域名
主机名中用句点分隔的每个组成部分都是一个域。 右侧(.com)是域后缀或顶级域,左侧(www。)是二级域或子域。 域后缀差异很大,包括.org,.net和特定于区域的后缀,例如.gov.au。
端口
:80:这是端口,指示用于访问目标Web服务器上的资源的门。 当浏览器联系服务器时,它可能会使用众所周知的端口号。 众所周知的端口号已分配给Internet协议。 例如,HTTP的标准端口是80(HTTPS是443)。 使用标准端口时,通常会省略URL的这一部分(鉴于HTTP的通用性,通常是这种情况)。 否则,必须包含端口。 此处的冒号还充当分隔符。
路径
/pickles/index.html:这是路径,它指示浏览器要访问的服务器上特定资源的路径。 正斜杠用作维护URL层次语法的分隔符。
请求参数
?type = sweet&size = small:这是一个查询字符串,始终以问号开头? 后跟一个或多个参数,以使服务器能够返回特定内容。 参数是键/值对(type = sweet),以&符号(&size = small)分隔。 每个Web服务器都根据自己的唯一规则处理参数。
锚点
#Summertime_Sweet_Pickles:这称为锚点,也称为片段标识符,该标识符始终以#号开头,后跟文本。 此部分代表用户将转到的网页上的特定位置,就像"锚定" URL一样。 如果URL检索HTML页面,则片段标识符可以使用该小节的相关ID来指示该页面的小节。
放在一起
并非每个URL都包含上面详述的每个元素,但是它们共同构成了URL的核心组成部分。 使用每个标签作为其各自的部分并使用适当的分隔符,可视化这样的URL可能会有所帮助:
scheme://domain:port/path?query=string#anchor
URL还有其他部分和其他规则,但是这些是您最常看到的URL组件,您应该做好解释的准备。 现在去接受面试!
(本文翻译自Andrew Koenig-Bautista的文章《A Basic Interview Question: Can You Explain Every Part of a URL?》,参考:https://medium.com/better-programming/a-basic-interview-question-can-you-explain-every-part-of-a-url-41fec140f80d)