跳转到内容

URL:修订间差异

轻之舟百科,让知识轻装启航
云云​(留言 | 贡献)
无编辑摘要
IdleTap-bot​(留言 | 贡献)
由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行)
 
(未显示另一用户的1个中间版本)
第1行: 第1行:
{{Infobox
{{Infobox
| 标题 = 统一资源定位符
| title = 统一资源定位符
| 内容 =  
 
{{!}}-
| label1 = 中文名
! 中文名
| data1 = 统一资源定位符
{{!}} 统一资源定位符
 
{{!}}-
| label2 = 英文名
! 英文名
| data2 = Uniform Resource Locator
{{!}} Uniform Resource Locator
 
{{!}}-
| label3 = 缩写
! 缩写
| data3 = URL
{{!}} URL
 
{{!}}-
| label4 = 提出者
! 提出者
| data4 = 蒂姆·伯纳斯-李(Tim Berners-Lee)
{{!}} 蒂姆·伯纳斯-李(Tim Berners-Lee)
 
{{!}}-
| label5 = 首次发布
! 首次发布
| data5 = 1994年(RFC 1738)
{{!}} 1994年(RFC 1738)
 
{{!}}-
| label6 = 最新标准
! 最新标准
| data6 = URL Standard(WHATWG 实时标准)<ref name="url-standard">[https://url.spec.whatwg.org/ URL Standard]</ref>
{{!}} URL Standard(WHATWG 实时标准)<ref name="url-standard">[https://url.spec.whatwg.org/ URL Standard]</ref>
 
{{!}}-
| label7 = 相关标准
! 相关标准
| data7 = RFC 3986、RFC 3987
{{!}} RFC 3986、RFC 3987
}}
}}


'''统一资源定位符'''(缩写:'''URL'''),俗称'''网页地址'''或'''网址'''<ref name="c114">[https://baike.c114.com.cn/view.asp?id=7387-76D8FFAA 统一资源定位符(URL)]</ref>,是对[[万维网]]上资源(如网页、图像、文件等)的位置和访问方法的一种简洁表示。URL是[[统一资源标识符]](URI)的一种具体形式,它不仅唯一标识一个资源,还指明了如何定位和获取该资源<ref name="rfc3986">[https://datatracker.ietf.org/doc/html/rfc3986 RFC 3986: Uniform Resource Identifier (URI): Generic Syntax]</ref><ref name="wiki-url">[https://en.wikipedia.org/wiki/URL URL - Wikipedia]</ref>。URL由[[蒂姆·伯纳斯-李]](Tim Berners-Lee)发明,最初用于万维网的地址系统,随后由[[万维网联盟]](W3C)和[[互联网工程任务组]](IETF)制定为互联网标准RFC 1738<ref name="rfc1738">[https://datatracker.ietf.org/doc/html/rfc1738 RFC 1738: Uniform Resource Locators (URL)]</ref><ref name="c114" />。如今,URL是互联网基础设施中最基本的组成部分之一,几乎所有网络浏览器和网络应用都依赖URL来定位和访问在线资源<ref name="url-standard" />。
'''统一资源定位符'''(缩写:'''URL'''),俗称'''网页地址'''或'''网址'''<ref name="c114">[https://baike.c114.com.cn/view.asp?id=7387-76D8FFAA 统一资源定位符(URL)]</ref>,是对[[万维网]]上资源(如网页、图像、文件等)的位置和访问方法的一种简洁表示。URL是[[统一资源标识符]]([[URI]])的一种具体形式,它不仅唯一标识一个资源,还指明了如何定位和获取该资源<ref name="rfc3986">[https://datatracker.ietf.org/doc/html/rfc3986 RFC 3986: Uniform Resource Identifier (URI): Generic Syntax]</ref><ref name="[[wiki]]-url">[https://en.wikipedia.org/wiki/URL URL - Wikipedia]</ref>。URL由[[蒂姆·伯纳斯-李]]([[Tim Berners-Lee]])发明,最初用于万维网的地址系统,随后由[[万维网联盟]]([[W3C]])和[[互联网工程任务组]](IETF)制定为[[互联网]]标准RFC 1738<ref name="rfc1738">[https://datatracker.ietf.org/doc/html/rfc1738 RFC 1738: Uniform Resource Locators (URL)]</ref><ref name="c114" />。如今,URL是互联网基础设施中最基本的组成部分之一,几乎所有网络[[浏览器]]和网络应用都依赖URL来定位和访问在线资源<ref name="url-standard" />。


== 历史 ==
== 历史 ==


URL的概念源于1990年蒂姆·伯纳斯-李为[[欧洲核子研究组织]](CERN)开发的万维网项目。他设计了URL作为超文本系统中定位文档和资源的方式,与[[超文本传输协议]](HTTP)和[[超文本标记语言]](HTML)共同构成了万维网的三大核心技术<ref name="royal-society">[https://royalsociety.org/people/tim-berners-lee-11380/ Sir Timothy Berners-Lee - Royal Society]</ref><ref name="infoq">[https://www.infoq.cn/article/url-history/ URL的发展史:路径、片段、查询、身份验证]</ref>。
URL的概念源于1990年蒂姆·伯纳斯-李为[[欧洲核子研究组织]]([[CERN]])开发的万维网项目。他设计了URL作为超[[文本]]系统中定位文档和资源的方式,与[[超文本传输协议]]([[HTTP]])和[[超文本标记语言]]([[HTML]])共同构成了万维网的三大核心技术<ref name="royal-society">[https://royalsociety.org/people/tim-berners-lee-11380/ Sir Timothy Berners-Lee - Royal Society]</ref><ref name="infoq">[https://www.infoq.cn/article/url-history/ URL的发展史:路径、片段、查询、身份验证]</ref>。


1992年,IETF成立了URI工作组,开始对URL进行标准化工作<ref name="rfc1738" />。1994年,RFC 1738正式发布,由蒂姆·伯纳斯-李和IETF URI工作组共同编写,定义了URL的语法和格式<ref name="rfc1738" /><ref name="c114" />。此后,URL标准不断演进,RFC 3986(2005年)和RFC 3987(2006年)分别更新了URI和国际化资源标识符(IRI)的规范<ref name="url-standard" />。
1992年,IETF成立了URI工作组,开始对URL进行标准化工作<ref name="rfc1738" />。1994年,RFC 1738正式发布,由蒂姆·伯纳斯-李和IETF URI工作组共同编写,定义了URL的语法和格式<ref name="rfc1738" /><ref name="c114" />。此后,URL标准不断演进,RFC 3986(2005年)和RFC 3987(2006年)分别更新了URI和国际化资源标识符(IRI)的规范<ref name="url-standard" />。
第45行: 第44行:
* '''协议(Scheme)''':指定访问资源所使用的通信协议,如 `http`、`https`、`ftp`、`mailto`、`file` 等<ref name="c114" /><ref name="wiki-url" />。协议名称不区分大小写,但通常使用小写。
* '''协议(Scheme)''':指定访问资源所使用的通信协议,如 `http`、`https`、`ftp`、`mailto`、`file` 等<ref name="c114" /><ref name="wiki-url" />。协议名称不区分大小写,但通常使用小写。


* '''主机名(Host)''':资源所在服务器的域名(如 `www.example.com`)或IP地址(如 `192.0.2.1`)<ref name="c114" /><ref name="rfc3986" />。
* '''主机名(Host)''':资源所在[[服务器]]的域名(如 `www.example.com`)或IP地址(如 `192.0.2.1`)<ref name="c114" /><ref name="rfc3986" />。


* '''端口号(Port)''':服务器上用于接受请求的端口编号。各协议有默认端口(如HTTP为80,HTTPS为443),省略时使用默认值<ref name="c114" />。
* '''端口号(Port)''':服务器上用于接受请求的端口编号。各协议有默认端口(如HTTP为80,[[HTTPS]]为443),省略时使用默认值<ref name="c114" />。


* '''路径(Path)''':服务器上资源的具体位置,通常由斜杠分隔的目录和文件名组成<ref name="c114" /><ref name="rfc3986" />。
* '''路径(Path)''':服务器上资源的具体位置,通常由斜杠分隔的目录和文件名组成<ref name="c114" /><ref name="rfc3986" />。
第67行: 第66行:
== 编码 ==
== 编码 ==


URL中只能使用[[ASCII]]字符集的一部分字符。对于不在允许范围内的字符(如中文、空格、特殊符号等),需要进行'''百分号编码'''(Percent-encoding,又称URL编码)<ref name="mdn-percent">[https://developer.mozilla.org/zh-CN/docs/Glossary/Percent-encoding 百分号编码 - MDN Web Docs]</ref>。编码方式是将每个非ASCII字符或特殊字符转换为 `%` 后跟该字符[[ASCII]]码或[[UTF-8]]编码字节的两位十六进制表示<ref name="mdn-percent" /><ref name="google-url-encoding">[https://developers.google.com/maps/documentation/url-encoding 网址编码 - Google Developers]</ref>。
URL中只能使用[[ASCII]]字符集的一部分字符。对于不在允许范围内的字符(如中文、空格、特殊符号等),需要进行'''百分号编码'''(Percent-encoding,又称URL编码)<ref name="mdn-percent">[https://developer.mozilla.org/zh-CN/docs/Glossary/Percent-encoding 百分号编码 - MDN Web Docs]</ref>。编码方式是将每个非ASCII字符或特殊字符转换为 `%` 后跟该字符[[ASCII]]码或[[UTF-8]]编码字节的两位十六进制表示<ref name="mdn-percent" /><ref name="[[go]]ogle-url-encoding">[https://developers.google.com/maps/documentation/url-encoding 网址编码 - Google Developers]</ref>。


例如,空格字符(ASCII 32)编码为 `%20`,中文“上海”在UTF-8下编码为 `%E4%B8%8A%E6%B5%B7`<ref name="google-url-encoding" />。
例如,空格字符(ASCII 32)编码为 `%20`,中文“上海”在UTF-8下编码为 `%E4%B8%8A%E6%B5%B7`<ref name="[[google]]-url-encoding" />。


== 标准 ==
== 标准 ==

2026年8月11日 (二) 10:15的最新版本

统一资源定位符
中文名统一资源定位符
英文名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]。

参考文献

[编辑 | 编辑源代码]