什么是 URL 解码和 URL 编码?
已发表: 2022-07-21当您运行一个网站时,您可能会在某些时候遇到 URL 解码和 URL 编码。 如果您还没有遇到这些,或者您只是第一次遇到它们并想了解更多信息,我们将在这里解释它们。
什么是 URL?
URL(统一资源定位器)是浏览器用来在 Internet 上查找资源的地址。 通常,该 URL 将指向一个网页,例如您正在阅读的网页。 但是,有时,它可能会导致文档(如 pdf 文档)。
所有 URL 都有一个由万维网的发明者 Tim Berners-Lee 制定的结构。 它们还符合如下所示的通用语法:
scheme:{//{user:password@}host{:port}}path{?query}{#fragment}
URL 语法的某些方面已被弃用且不经常使用,因为存在安全问题。 {user:password}
方面就是一个很好的例子。 在没有任何形式保护的情况下发送此信息将意味着黑客可以访问他们不应该访问的系统。
您可能会看到的常见 URL 包括:
https://example.com/page-1
对于此 URL,方案是 https。 主机是 example.com,路径是 page-1 元素。
允许的 URL 字符
URL 中只能包含特定字符。 这些字符都属于 US-ASCII 字符集,包括数字 (0-9)、字母 (az) 和一些特殊字符。 如果网站所有者在 URL 中放置了未包含在 US-ASCII 编码中的字符或已为特殊含义保留的字符(包括?、/、#、:),则需要更改 URL .
这就是编码发挥作用的地方,因为 URL 的任何部分都不应包含这些“保留”字符,除非它们出于特定原因应该使用它们。 例如,/ 字符用于表示 URL 中的路径。
因此,当使用这些字符之一时,需要对 URL 中包含的数据进行编码。 这是 URL 编码过程将保留字符、任何不安全字符和非 ASCII 字符转换为 Web 浏览器和服务器更普遍接受和理解的格式的时候。
字符在编码过程中被更改为一个或多个字节,由两个十六进制数字表示,前面有百分号 (%)。 这就是为什么 URL 编码有时被称为百分比编码的原因。
例如,如果您要发送 URL
https://example.com/hello world
注意 hello 和 world 之间的差距。 这在标准 URL 格式中是不允许的,因此需要更改。 标准是 %20,其中 20 是空格的标准表示。 因此,经过 URL 编码后传输的 URL 如下所示:
https://example.com/hello%20world
为什么 URL 编码很重要?
URL 编码是了解 URL 中何时出现错误的重要部分。 如果您可以识别何时发生编码,您可以进入并查看您的结构并通过创建一个新 URL 找到解决问题的方法。
或者您可能会发现您在 URL 的结构中需要包含非标准化字符,并且需要了解如何对它们进行编码才能被接受。 当您在页面上有问题并想要链接到页面的该部分时,可能就是这种情况。 你不能有'? 在 URL 结构中,因为它是保留字符,因此您需要对其进行编码。
您可能想要的原始 URL 是:

https://example.com/questions#what-is-the-question?
但在编码中,它将更改为:
https://example.com/questions#what-is-the-question%3F
然后,这会将访问者带到域 example.com 上的页面问题和页面的“问题是什么?”部分。
如何正确编码 URL
有一个问题是,当您需要对 URL 进行编码时,可能会在编码方面出错。 例如,假设 URL example.com/a+b/c 需要编码。 b 和 c 之间的 / 可以是路径符号,因此是 URL 中允许的字符,也可以是分隔符号。
因此,对 URL example.coma+b/c 进行编码可能会导致
example.com/a%2Bb/c or example.com/a%2Bb%2Fc.
因此,要正确编码域,您需要知道 b 和 c 之间的 / 代表什么。 它是指地址中的分隔线还是路径?
然后,要正确编码 URL,您需要对不同的部分进行编码。 这包括主机(例如 example.com)和每个单独的路径。
因此,如果它是不同的路径,那么您需要对三个部分进行编码:example.com、a+b 和 c。
但是,如果它是为了表示分界线,那么您应该对 example.com 和 a+b/c 两部分进行编码。
为了帮助对您的任何 URL 进行编码,您可以使用 Gochyu 提供的这个免费的 URL 解码和 URL 编码在线工具。 您需要分别输入 URL 的所有不同路径,但它会为您提供成功所需的正确代码。
您甚至可以将 URL 的每个部分分隔到一个新行中,以便一次获得完整的 URL。
所以,网址
example.com/questions/what-is-the-question?#Answer#1
应该出来:
example.com/questions/what-is-the-question%3F/#Answer%231
什么是 URL 解码?
URL解码是URL编码逆向的过程。 当 URL 被编码时,因为它包含不可接受的字符。 您现在可以对该 URL 进行解码,使其具有更易读的形式。
这对于在 URL 中查找错误非常重要。 例如,您可能不小心在 URL 中放置了 #。 通过解码,您可以删除这些内容并使 URL 对搜索引擎和人类都更具可读性。 删除后,您可以看到您的网站在搜索引擎上的排名有所提高或获得更多直接流量,因为人们现在可以使用标准化的 URL。
如果您需要对 URL 进行解码,可以使用我们的免费 URL 解码和 URL 编码在线工具。 您需要做的就是在框中输入编码的 URL,然后按解码按钮。
最后一句话:什么是 URL 解码和 URL 编码?
编码是将 URL 中由于各种原因无法使用的字符简单地更改为标准化代码。 这是为了防止在从服务器检索资源并允许站点在 Web 浏览器上正确呈现时出错。 解码则相反。
识别 URL 何时被编码并确保您可以使用 URL 编码和 URL 解码来修复网站上的错误非常重要。