URL 编码解码


URL 介绍

URL 是什么

URLUniform Resource Locator(统一资源定位符)的简称,用于标识互联网的资源的位置。

URL 的格式为 scheme:[//authority]path[?query][#fragment],其中 authority = [userinfo@]host[:port]

  1. scheme - 指协议,如 http 或者 ftp,必填
  2. userinfo - 用于权限验证的用户信息,格式为 username:password,可选
  3. host - 主机,可以是域名或者 IP,必填
  4. port - 端口号,可选,默认使用协议的默认端口
  5. path - 路径,用来表示主机的目录和文件地址。可选
  6. query - 查询参数。可选
  7. fragment - 片段,指网络资源中的一个片段。可选

一个简单的 URL 的例子:https://www.codeeeee.com,只使用了 schemehost,端口使用了 https 的默认端口 443

URI 是什么

URI 是 Uniform Resource Identifier(统一资源标识符)的简称,用来标识互联网资源的名称。URL 和 URI 的格式相同,而且概念上比较容易混淆,有时候可以把他们等同。URL 和 URI 的区别是,前者代表资源的位置,后者代表资源的名称。URL 是 URI 的一种类型。

URL 为什么要编码

URL 只能包含 ASCII 码的字符,所以当出现字符集以外的字符,就需要进行编码。同时,URL 有一些保留字符,如 :/&,遇到这些字符也需要进行编码转换,以免混淆 URL 的解析。

URL 编码规则

URL 编码时,会将字符表示成对应的百分号编码(%)。具体的编码规则可以参考这里关于 URL 编码的介绍

在 Javascript 中,可以使用 encodeURIComponentdecodeURIComponent 进行 URL 的编码和解码。