URL 表明着是统一资源定位符(Uniform Resource Locator)。做用是为了告诉使用者 某个资源在 Web 上的地址。这个资源能够是一个 HTML 页面,一个 CSS 文档,一幅图像或一个猫片等等。上面咱们请求猫片的URL就是golang
https://upos-sz-staticks3.bilivideo.com/cmaskboss/164203142_30_1.jpg
服务器
这里面细分,又能够分为好几个部分。ide
表示该URL的协议部分为http仍是https,会用//为分隔符。上面的URL表示网页用的是HTTPS协议,而上面提到的X影天堂用的则是ftp协议的下载连接。学习
域名是upos-sz-staticks3.bilivideo.com
,在发送请求前,会向DNS服务器解析IP。若是已经知道ip,还能够跳过DNS解析那一步,直接把IP当作域名部分使用。url
域名后面有些时候会带有端口,和域名之间用:分隔,端口不是一个URL的必须的部分。当网址为http://时,默认端口为80code
当网址为https://时,默认端口为443,以上两种均可以省略端口号。上面的URL其实省略了443端口号。orm
从域名的第一个/开始到最后一个/为止,是虚拟目录的部分。虚拟目录也不是URL必须的部分,本例中的虚拟目录是/cmaskboss/
blog
从域名最后一个/开始到?为止,是文件名部分;若是没有?,则是从域名最后一个/开始到#为止,是文件名部分;若是没有?和#,那么就从域名的最后一个/从开始到结束,都是文件名部分。本例中的文件名是164203142_30_1.jpg
,文件名也不是一个URL的必须部分。ip
URI 表明着统一资源标识符(Uniform Resource Identifier),用于标识某一互联网资源名称。 该种标识容许用户对任何包括本地和互联网的资源经过特定的协议进行交互操做。好比上面URL中的 164203142_30_1.jpg
。资源
其实一直有个误解,不少人觉得URI是URL的子集,其实应该反过来。URL是URI的子集才对。简单解释下。
假设"小白"(URI)是一种资源,而"在迪丽亦巴的怀里"代表了一个位置。若是你想要找到(locate)小白,那么你能够到"在迪丽亦巴怀里"找到小白,而"在迪丽亦巴怀里的/小白"才是咱们常说的URL。而"在迪丽亦巴怀里的/小白"(URL)显然是"小白"(URI)的子集,毕竟,"小白"还多是"在牛亦菲怀里的/小白"(其余URL)。
关注公众号:【golang小白成长记】