网站首页 > 知识剖析 正文
理解web世界的基本概念
作为一名开发,你肯定已经无数次听到过URL这个名次。也许也在某些场合碰到过URI这个东西。是否在有些时候你会想要了解这两个有什么关系?它们之间有什么区别吗?有时候这两个概念的使用是可以互换的,但细究下去毕竟是有所区别。在对比它们之间的区别之前,让我们把它们放到放大镜之下,具体了解一下这两个老朋友各自的定义是什么。
什么是URL?
Uniform Resource Locator或者简称URL— 顾名思义 — 就是对于某种web资源的引用,并且包含了如何获取该资源的方式。 最常见到的场景就是指一个网站的地址,也就是你在浏览器地址栏见到的那个东西。
一个URL由如下几个部分构成:
- 协议: 通常是https或者http。表示通过何种方式获取该资源。你可能还见过其他协议类型,比如ftp或者file
- 协议后面跟着://
- 主机名: 可以是一个已经在DNS服务器注册过的域名 —— 或者是一个IP地址 —— 域名就表示背后的IP地址。一组主要由数字组成的用于标识接入网络的设备的字符串。
- 主机名后面可以指定端口,端口是可选的,如果不指定则使用默认端口,端口和主机名之间通过冒号隔开。
- 资源路径: 用于表示资源在主机上的文件系统路径。
- 可以在这之后通过问号连接可选的查询参数,如果有多个查询参数,通过&符连接
- 最后一项,如果需要的话可以添加#作为需要跳转的页面上的矛点名称。
一个URL的组成部分可以参考下面的图示:
什么是URI?
接下来我们来了解一下究竟什么是URI。与URL相似的部分是,Uniform Resource Identifier同样定义了资源的标识。但不同点在于URI通常不会包含获取资源的方式。
ISBN作为书目的资源定义就是一种URI,但不是URL。它清楚地为每一种出版的书目定义了唯一的数字编号,但没有包含任何如何获取这种资源的方法。
因此我们可以这样总结:URI是URL的超集,URL是URI的子集。每一个URL都必定也是一个URI。
区别图示
为了阐明它们之间的关系,可以参见下面的图示
所以实际上URL就是一种特定的URI,这种URI还含有如何获取资源的信息。如果一定需要一句话来总结本文的主要内容,那么RFC3986中的这句定义一定是最合适的:
The term “Uniform Resource Locator” (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means of locating the resource by describing its primary access mechanism.
总结
作为开发者会发现我们有无数的英文缩写要了解和记住。但一旦能够更加深入地了解组成互联网基石的核心概念,就会发现上层概念越来越简单,并且由于对于底层概念的了解,实际工作质量也可能越来越高。
- 上一篇: 用shell进行ASCII字符转换与URL编码技巧
- 下一篇: java的URL URI的区别
猜你喜欢
- 2025-08-05 2016年上半年 网络工程师 答案详解
- 2025-08-05 java的URL URI的区别
- 2025-08-05 用shell进行ASCII字符转换与URL编码技巧
- 2025-08-05 ASP.NET Core 中使用 Sqids 实现url短链接编码
- 2025-08-05 一文看懂:网址,URL,域名,IP地址,DNS,域名解析
- 2025-08-05 认识url及其编码
- 2025-08-05 关于编码的那些事 - URL 编码
- 08-0612 个最佳 JavaScript 动画库,让您的 Web 页面动起来
- 08-06HTML 二次函数图像动画展示
- 08-06UnoCSS 内置的动画
- 08-06炫酷的CSS3 loading加载动画,总有一款适合你
- 08-06想要开发更好的Python项目,代码质量是关键
- 08-06想要入门学好Python编程,先从这几本书开始
- 08-06甲方VS程序员精彩画面鉴赏
- 08-06后端语言性能排行,哪种语言最快,为什么?
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)