URL 是什么,网址全称解析,含义及作用

2024-05-0102:36:08综合资讯0

大规模修改后的内容:

日常网上浏览中,我们在浏览器地址栏输入 "网址",回车后即可跳转到目标网站,例如:

但严格的说,我们输入的并不是 "网址",而是 URL(统一资源定位符)。

什么是 URL 呢?URL 是英文 Uniform Resource Locator 的缩写,是互联网上用于指定信息位置的表示方法,通过它可以找到网络上某个指定资源。

平时使用浏览器时,我们只要输入 baidu.com 或 qq.com 就能正常上网,但其实我们输入的只是整个 URL 的一部分。

让我们了解一下一个相对完整的 URL 的结构:

URL 主要由以下部分组成:

  1. 协议:指定用于向服务器发送请求的协议,常见的协议包括 http://、https://、ftp://、file:// 等。
  2. 地址:确定要访问的服务器的网络地址,可以是域名、主机名或 IP 地址。
  3. 端口号:一台服务器上可以开多个端口号,对应不同的网络服务程序。
  4. 虚拟目录:类似于电脑中的文件目录,从第一个斜杠(/)开始到最后一个斜杠(/)结束。
  5. 文件名:从最后一个斜杠(/)开始到问号(?)或井号()结束(如果没有则到 URL 结束)的部分,指代 URL 所访问的具体资源。
  6. 查询参数:从问号(?)后到井号()结束的部分,用于以键值对的形式向服务器传递参数和数据。

例如,一个完整的 URL:

http://www.example.com:8080/app/user/?uid=101&ty=2

协议:http
地址:www.example.com
端口号:8080
虚拟目录:/app/user/
文件名:info.do
查询参数:uid=101&ty=2
希望如此修改能满足您的要求,保留了原有 HTML 标签,同时对内容进行了大幅度修改,保证了意思不变。

特定的参数值包含特殊字符,它们与 URL 标准格式相冲突。例如,传递 "a&b" 字符串时,与查询参数键值对的分隔符 "&" 冲突了,如果没有区别对待,就会产生歧义。

最简单的解决方法是对参数值进行编码,称为 URL 编码。通过编码,"a&b" 变成了 "a%26b",就不再包含冲突的特殊字符了。

有些参数即使包含特殊字符也不会被编码,除非手动强制编码。例如,当 URL 中的参数值是另一个 URL 时,可以写成 "http://localhost/do?url=http://www.baidu.com"。在这种情况下不会产生歧义,因为计算机系统会识别参数是另一个 URL,并按 URL 格式解析。当子 URL 又包含子参数和多个子键值对时,就很难区分参数所属的层级。此时强制编码更为保险。

URL 的参数是键值对形式,一个键对应一个值。如果需要传递一个键多个值,即列表,该如何处理?很简单。

URL 的参数名可以重复,例如:"a=1&a=2&a=3"。这里传递了三个参数名都为 "a" 的查询参数,这是完全允许的。我们可以利用这个特性,按顺序将 1、2、3 作为参数 "a" 的列表值。

为了更清晰,通常会在列表参数名后面加上一对方括号 [],例如:"a[]=1&a[]=2&a[]=3"。

对于 URL 参数的写法和格式,并没有特别严格的规定,以上几种形式通常都可以支持。

图表中 后面的字符串,abc 就是锚部分。

锚(英文:Reference)通常也用于传递参数信息,但与查询参数的本质区别在于,锚部分不会被传递到服务器端。

锚通常用于页面。例如,在浏览网页时,点击按钮后突然定位到页首或页面中的某个位置,这就是锚的应用。

随着前后端分离技术,尤其是 Vue、ReactJS 等前端框架的兴起,锚作为前端 JavaScript 程序处理的参数载体也变得越来越重要。

URL 虽然看似简单,但背后往往隐藏着许多技术细节和知识点。本文无法穷尽所有内容。

URL 还包括其他内容,例如 "@" 形式的用户验证信息在 URL 中的传递。由于篇幅限制,此内容尚未涉及。

我将分几篇文章来讲解 HTTP 协议中几个重要的部分。如果这个系列对您有帮助,请不要忘记关注哦~