URL
统一的资源定位器 | |
缩写 | URL |
---|---|
地位 | 出版 |
首次出版 | 1994 |
最新版本 |
生活水平 2023 |
组织 | 互联网工程工作队(IETF) |
委员会 | Web超文本应用技术工作组(WhatWG) |
系列 | 请求评论(RFC) |
编辑 | 安妮·范·凯斯滕(Anne Van Kesteren) |
作者 | 蒂姆·伯纳斯·李 |
基本标准 | |
相关标准 | Uri , urn |
领域 | 全球资讯网 |
执照 | CC由4.0 |
网站 | url .spec .whatwg .org |
统一的资源定位器( URL ),俗称网络上的地址,是对资源指定其位置在计算机网络上的位置以及用于检索它的机制的引用。 URL是一种特定类型的统一资源标识符(URI),尽管许多人可以互换使用这两个术语。 URL最常见的是引用网页( HTTP / HTTP ),但也用于文件传输( FTP ),电子邮件( MailTO ),数据库访问( JDBC )和许多其他应用程序。
大多数Web浏览器在地址栏上的页面上方显示网页的URL。典型的URL可以具有http://www.example.com/index.html
表格,该表格指示一个协议( http
), hostName ( www.example.com
)和文件名( index.html
)。
历史
全球网络发明者蒂姆·伯纳斯·李(Tim Berners-Lee)在1994年的RFC 1738中定义了统一的资源定位器,以及互联网工程工作组(IETF)的URI工作组,作为IETF Living文档的合作结果,作为合作的结果。 1992年的羽毛鸟类。
该格式结合了域名(创建于1985年)的预先存在的系统与文件路径语法,其中斜线用于分离目录和文件名。已经存在约定服务器名称可以前缀以完成文件路径的情况,然后再进行双斜线( //
)。
Berners-Lee后来对使用点分离Uris中的域名部分表示遗憾域名是不必要的。
包括Berners-Lee在内的WorldWideWeb早期合作者最初提出了UDIS的使用:通用文档标识符。 HTML规范的早期(1993年)提到了“通用”资源定位器。这是在1994年6月(RFC 1630 )和1994年10月(Draft-ietf-uri-url-08.txt)之间的一段时间。 Berners-Lee在编织网络的书中,强调了他偏爱最初将“通用”包含在扩展中而不是“统一”一词的偏爱,后来被更改为“统一”,他简要介绍了引导的争论改变。
句法
每个HTTP URL都符合通用URI的语法。 URI通用语法由五个组成的组成部分组成,以从左到右的意义下降的顺序进行层次组织:
URI = scheme ":" ["//" authority] path ["?" query] ["#" fragment]
如果组件具有关联的定界符,并且定界符没有出现在URI中,则不确定。方案和路径组件始终定义。如果组件没有字符,则为空;该方案组件始终是非空的。
权威组成部分由子组件组成:
authority = [userinfo "@"] host [":" port]
这在语法图中表示为:
URI包括:
- 非空方案组件后面是一个结肠(
:
,由一系列字符组成,以字母开头,然后是字母,数字,加上(+
),erece(.
)或连字符(-
)的任何组合。尽管方案是对病例不敏感的,但规范形式是小写,并且指定方案必须使用小写字母进行的文档。流行方案的示例包括http
,https
,ftp
,mailto
,file
,data
和irc
。尽管在实践中使用了未注册的方案,但应在Internet分配的数字授权(IANA)中注册URI计划。 - 可选权威组成部分之前是两个斜线(
//
),包括: - 一个路径分量,由一系列路径段组成,该路径段被斜线(
/
)隔开。尽管定义的路径可能为空(零长度),但始终为URI定义路径。一个段也可能是空的,导致路径组件中的两个连续斜线(//
)。路径组件可以完全类似于或映射到文件系统路径,但并不总是暗示与一个路径的关系。如果定义了权限组件,则路径组件必须为空或以斜杠(/
)开始。如果权限组件不确定,则该路径不能以一个空段开头(即有两个斜线(//
),因此以下字符将被解释为权威组成部分。
- 按照惯例,在http和https uris中,路径的最后一部分被命名Pathinfo ,是可选的。它由不参考现有物理资源名称(例如文件,内部模块程序或可执行程序)的零或更多路径段组成单独传递到路径的第一部分,该路径识别由Web服务器管理的可执行模块或程序;这通常用于选择动态内容(文档等)或根据要求进行调整(另请参见: CGI和PATH_INFO等)。
- 例子:
- URI:
"http://www.example.com/questions/3456/my-document"
- 其中:
"/questions"
是路径的第一部分(可执行模块或程序)和"/3456/my-document"
是名为Pathinfo的路径的第二部分,该路径被传递给了可执行的模块或名为“名为”的程序"/questions"
选择请求的文档。
- URI:
- HTTP或HTTPS URI包含没有查询部分的Pathinfo部分的HTTP URI也可以称为“干净URL ”,其最后一部分可能是“ slug ”。
查询定界符 | 例子 |
---|---|
Ampersand( & )
|
key1 = value1&key2 = value2
|
半隆( ; )
|
key1 = value1; key2 = value2
|
- 可选查询组件之前是问号(
?
),由一个非层次数据的查询字符串组成。它的语法不是很好的定义,但是按照惯例通常是由定界符隔开的属性 - 值对序列。 - 可选片段组件之前是哈希(
#
)。该片段包含一个碎片标识符,该片段提供了方向,例如剩余的URI确定的文章中的部分。当主要资源是HTML文档时,该片段通常是特定元素的id
属性,Web浏览器会将此元素滚动到视图中。
Web浏览器通常会通过向指定主机执行HTTP请求来解除URL,默认情况下对端口号80进行。使用https
方案的URL要求通过与网站的安全连接进行请求和响应。
国际化URL
互联网用户使用多种语言和字母在世界范围内分发,并希望能够在自己的本地字母中创建URL。国际化资源标识符(IRI)是包括Unicode字符的一种URL形式。所有现代浏览器都支持虹膜。需要针对不同字母的特殊处理的URL部分是域名和路径。
IRI中的域名被称为国际化域名(IDN)。 Web和Internet软件会自动将域名转换为可通过域名系统使用的PunyCode ;例如,中国URL http://xn--fsqu00a.xn--3lr804guic/
http://例子.卷筒纸
xn--
表示该字符最初不是ASCII 。
本地写作系统中的用户也可以指定URL路径名。如果尚未编码,则将其转换为UTF-8 ,并且使用百分比编码为十六进制的基本URL字符集的任何字符都可以逃脱;例如,日语URL http://example.com/引き割り.html
变为http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html
。目标计算机解码地址并显示页面。
协议相关的URL
协议相关链接(PRL),也称为协议相关URL(PRURL),是未指定协议的URL。例如, //example.com
将使用当前页面的协议,通常是http或https。