我们在浏览网页的时候,需要在浏览器中输入http://或者https://开头的URL地址,类似http://honeypps.com,那么这里的"://"或者"//"有什么用呢?
说到URL就不得不提URI了。用什么来标记服务器上的资源呢?用的就是URI(Uniform Resource Identifier),即统一资源标识符。URI经常出现在浏览器的地址栏里,有时候也会称它为“网络地址”,简称“网址”。不过,严格意义上来讲,URI不完全等同于网址,它包含URL(Uniform Resource Locator,统一资源定位符)和URN(Uniform Resource Name, 统一资源命名)。
由于URL的普及性特别高,狭义上,我们可以简单地把URI和URL看做是相等的东东。
我们来看一下URI的格式:
URI = scheme:[//authority]path[?query][#fragment]authority = [userinfo@]host[:port]
结构图如下:
第一部分,scheme,可以翻译成协议名,表示资源应该使用哪种协议来访问。最常见的就是http和https了,其它的如:ftp、file等。
在 scheme 之后,必须是三个特定的字符“://”,它把 scheme 和后面的部分分离开。这个是今天的主角,如果单单是用作区分,完全可以只使用“:”这1个字母,而不是“://”这3个字母。
在“://”之后,是被称为“authority”的部分,表示资源所在的主机名,通常的形式是“host:port”,即主机名加端口号。以前authority还会包含身份信息userinfo,即“user:passwd@”的形式,不过现在已经不流行了,可以忽略。在后面的内容代表什么含义,相信大家都已经很清楚了。
当有人问你://有什么用的时候,其实是在挖坑。我们在面试的时候,经常在回答完一个问题的时候,面试官会抓着你答案里的一个点进行“深层次挖掘”,也可以称之为“夺命连环问”,久而久之我们会形成一种习惯,总觉得问题的背后有什么深层次的东西,需要我们绞尽脑汁去思考。这里的://就是一个典型的反例。