URL 是 Uniform Resource Locator
(统一资源定位符)的简称,用于标识互联网的资源的位置。
URL 的格式为 scheme:[//authority]path[?query][#fragment]
,其中 authority = [userinfo@]host[:port]
。
scheme
- 指协议,如 http 或者 ftp,必填userinfo
- 用于权限验证的用户信息,格式为 username:password,可选host
- 主机,可以是域名或者 IP,必填port
- 端口号,可选,默认使用协议的默认端口path
- 路径,用来表示主机的目录和文件地址。可选query
- 查询参数。可选fragment
- 片段,指网络资源中的一个片段。可选一个简单的 URL 的例子:https://www.codeeeee.com,只使用了 scheme
和 host
,端口使用了 https
的默认端口 443
URI 是 Uniform Resource Identifier
(统一资源标识符)的简称,用来标识互联网资源的名称。URL 和 URI 的格式相同,而且概念上比较容易混淆,有时候可以把他们等同。URL 和 URI 的区别是,前者代表资源的位置,后者代表资源的名称。URL 是 URI 的一种类型。
URL 只能包含 ASCII
码的字符,所以当出现字符集以外的字符,就需要进行编码。同时,URL 有一些保留字符,如 :
、/
、&
,遇到这些字符也需要进行编码转换,以免混淆 URL 的解析。
URL 编码时,会将字符表示成对应的百分号编码(%)。具体的编码规则可以参考这里关于 URL 编码的介绍
在 Javascript 中,可以使用 encodeURIComponent
和 decodeURIComponent
进行 URL 的编码和解码。