什麼是 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 解碼來修復網站上的錯誤非常重要。