跳转到内容

URL

轻之舟百科,让知识轻装启航
统一资源定位符
中文名统一资源定位符
英文名Uniform Resource Locator
缩写URL
提出者蒂姆·伯纳斯-李(Tim Berners-Lee)
首次发布1994年(RFC 1738)
最新标准URL Standard(WHATWG 实时标准)[1]
相关标准RFC 3986、RFC 3987

统一资源定位符(缩写:URL),俗称网页地址或网址[2],是对万维网上资源(如网页、图像、文件等)的位置和访问方法的一种简洁表示。URL是统一资源标识符(URI)的一种具体形式,它不仅唯一标识一个资源,还指明了如何定位和获取该资源[3][4]。URL由蒂姆·伯纳斯-李(Tim Berners-Lee)发明,最初用于万维网的地址系统,随后由万维网联盟(W3C)和互联网工程任务组(IETF)制定为互联网标准RFC 1738[5][2]。如今,URL是互联网基础设施中最基本的组成部分之一,几乎所有网络浏览器和网络应用都依赖URL来定位和访问在线资源[1]。

URL的概念源于1990年蒂姆·伯纳斯-李为欧洲核子研究组织(CERN)开发的万维网项目。他设计了URL作为超文本系统中定位文档和资源的方式,与超文本传输协议(HTTP)和超文本标记语言(HTML)共同构成了万维网的三大核心技术[6][7]。

1992年,IETF成立了URI工作组,开始对URL进行标准化工作[5]。1994年,RFC 1738正式发布,由蒂姆·伯纳斯-李和IETF URI工作组共同编写,定义了URL的语法和格式[5][2]。此后,URL标准不断演进,RFC 3986(2005年)和RFC 3987(2006年)分别更新了URI和国际化资源标识符(IRI)的规范[1]。

2010年代起,WHATWG(Web超文本应用技术工作组)发布了URL实时标准(URL Living Standard),旨在统一和简化URL的解析与处理,逐步取代早期的RFC标准[1][8]。

一个完整的URL通常由多个部分组成,其通用语法格式如下[2][3]:

协议 :// 主机名 [: 端口号] / 路径 [ ; 参数 ] [ ? 查询 ] [ # 片段 ]

其中方括号内的部分为可选项。各部分含义如下:

  • 协议(Scheme):指定访问资源所使用的通信协议,如 `http`、`https`、`ftp`、`mailto`、`file` 等[2][8]。协议名称不区分大小写,但通常使用小写。
  • 主机名(Host):资源所在服务器的域名(如 `www.example.com`)或IP地址(如 `192.0.2.1`)[2][3]。
  • 端口号(Port):服务器上用于接受请求的端口编号。各协议有默认端口(如HTTP为80,HTTPS为443),省略时使用默认值[2]。
  • 路径(Path):服务器上资源的具体位置,通常由斜杠分隔的目录和文件名组成[2][3]。
  • 参数(Parameters):部分协议支持的分号分隔的附加参数,现已不常见[2]。
  • 查询(Query):用于向动态网页传递参数的字符串,以问号 `?` 开头,多个参数之间用 `&` 分隔,格式为 `键=值`[2]。
  • 片段(Fragment):指向资源内部特定位置的标识符,以井号 `#` 开头,常用于定位网页中的某个章节或元素[2][3]。

示例:`https://www.example.com:443/docs/page.html?lang=zh#section2`

与URI的关系

[编辑 | 编辑源代码]

URL是统一资源标识符(URI)的一个子集。URI是一个更广义的概念,用于唯一标识一个资源,而URL不仅标识资源,还提供了定位和访问该资源的方法[3][8]。URI的另一个子集是统一资源名称(URN),它仅通过名称标识资源而不涉及位置[3]。

在实践中,URL和URI两个术语经常被混用,但技术上所有URL都是URI,反之则不一定成立[8]。

URL中只能使用ASCII字符集的一部分字符。对于不在允许范围内的字符(如中文、空格、特殊符号等),需要进行百分号编码(Percent-encoding,又称URL编码)[9]。编码方式是将每个非ASCII字符或特殊字符转换为 `%` 后跟该字符ASCII码或UTF-8编码字节的两位十六进制表示[9][10]。

例如,空格字符(ASCII 32)编码为 `%20`,中文“上海”在UTF-8下编码为 `%E4%B8%8A%E6%B5%B7`[11]。

URL的主要标准文件包括:

  • RFC 1738(1994年):URL的原始标准,已废弃[5]。
  • RFC 3986(2005年):URI通用语法标准,取代RFC 1738成为URL的主要参考[3]。
  • RFC 3987(2006年):国际化资源标识符(IRI)标准,允许在URL中使用非ASCII字符[1]。
  • WHATWG URL Standard(实时更新):当前最广泛实施的URL标准,定义了URL的解析、序列化和API,旨在统一各实现之间的差异[1][8]。

参考文献

[编辑 | 编辑源代码]