URL是什么
URL 代表着是统一资源定位符(Uniform Resource Locator)。作用是为了告诉使用者 某个资源在 Web 上的地址。这个资源可以是一个 HTML 页面,一个 CSS 文档,一幅图像或一个猫片等等。上面我们请求猫片的URL就是
https://upos-sz-staticks3.bilivideo.com/cmaskboss/164203142_30_1.jpg
这里面细分,又可以分为好几个部分。
- 协议部分
表示该URL的协议部分为http还是https,会用**//为分隔符。上面的URL表示网页用的是HTTPS协议,而上面提到的X影天堂用的则是ftp**协议的下载链接。
- 域名部分
域名是upos-sz-staticks3.bilivideo.com
,在发送请求前,会向DNS服务器解析IP。如果已经知道ip,还可以跳过DNS解析那一步,直接把IP当做域名部分使用。
- 端口部分
域名后面有些时候会带有端口,和域名之间用:分隔,端口不是一个URL的必须的部分。当网址为http://时,默认端口为80
当网址为https://时,默认端口为443,以上两种都可以省略端口号。上面的URL其实省略了443端口号。
- 虚拟目录
从域名的第一个/开始到最后一个/为止,是虚拟目录的部分。虚拟目录也不是URL必须的部分,本例中的虚拟目录是/cmaskboss/
- 文件名部分
从域名最后一个/开始到?为止,是文件名部分;如果没有?,则是从域名最后一个/开始到#为止,是文件名部分;如果没有?和#,那么就从域名的最后一个/从开始到结束,都是文件名部分。本例中的文件名是164203142_30_1.jpg
,文件名也不是一个URL的必须部分。
URI是什么
URI 代表着统一资源标识符(Uniform Resource Identifier),用于标识某一互联网资源名称。 该种标识允许用户对任何包括本地和互联网的资源通过特定的协议进行交互操作。比如上面URL中的 164203142_30_1.jpg
。
URL 和 URI 的区别
- URL:Uniform Resource Locator 统一资源定位符;
- URI: Uniform Resource Identifier 统一资源标识符;
其实一直有个误解,很多人以为URI是URL的子集,其实应该反过来。URL是URI的子集才对。简单解释下。
假设"小白"(URI)是一种资源,而"在迪丽亦巴的怀里"表明了一个位置。如果你想要找到(locate)小白,那么你可以到"在迪丽亦巴怀里"找到小白,而"在迪丽亦巴怀里的/小白"才是我们常说的URL。而"在迪丽亦巴怀里的/小白"(URL)显然是"小白"(URI)的子集,毕竟,“小白"还可能是"在牛亦菲怀里的/小白”(其他URL)。
文章推荐:
- 给大家丢脸了,用了三年golang,我还是没答对这道内存泄漏题
- 连nil切片和空切片一不一样都不清楚?那BAT面试官只好让你回去等通知了。
- 昨天那个在for循环里append元素的同事,今天还在么?
- golang面试官:for select时,如果通道已经关闭会怎么样?如果只有一个case呢?
- golang面试官:for select时,如果通道已经关闭会怎么样?如果只有一个case呢?
- golang面试题:对已经关闭的的chan进行读写,会怎么样?为什么?
- golang面试题:对未初始化的的chan进行读写,会怎么样?为什么?
- golang 面试题:reflect(反射包)如何获取字段 tag?为什么 json 包不能导出私有变量的 tag?
- golang面试题:json包变量不加tag会怎么样?
- golang面试题:怎么避免内存逃逸?
- golang面试题:简单聊聊内存逃逸?
- golang面试题:字符串转成byte数组,会发生内存拷贝吗?
- golang面试题:翻转含有中文、数字、英文字母的字符串
- golang面试题:拷贝大切片一定比小切片代价大吗?
- golang面试题:能说说uintptr和unsafe.Pointer的区别吗?