Percent-encoding je základní pilíř moderní webové infrastruktury a určuje, jak se data přenášejí internetem. V jádru se internet opírá o Uniform Resource Identifiers (URI) k lokalizaci zdrojů. Specifikace URI (RFC 3986) ale přísně omezuje znaky, které lze v URL bezpečně použít. Povolené znaky, známé jako „unreserved characters“, jsou omezené na velká a malá alfanumerická písmena (A–Z, a–z, 0–9), pomlčky (-), tečky (.), podtržítka (_) a tildy (~). Každý jiný znak se považuje za „nebezpečný“ nebo „rezervovaný“, protože má ve formátu URL zvláštní strukturální význam. Například ampersand (&) odděluje parametry query, rovnítko (=) přiřazuje hodnoty a lomítko (/) definuje cesty adresářů. Pokud potřebujete přenést skutečný znak „&“ jako součást datového payloadu, a ne jako strukturální oddělovač, musí se percent-encodovat.
Když se znak má percent-encodovat, nejprve se převede na odpovídající bajtovou hodnotu podle standardu kódování znaků UTF-8. Každý bajt se pak reprezentuje dvouciferným hexadecimálním číslem, před nímž je znak procenta (%). Například znak mezery odpovídá bajtové hodnotě 32 v desítkové soustavě, nebo 20 v hexadecimální. Mezera se proto stane „%20“. Symbol „zavináč“ (@) se stane „%40“ a čárka (,) „%2C“. Tato systematická konverze zaručí, že webové servery, load balancery a prohlížeče dokážou hranice URL univerzálně interpretovat bez nejednoznačnosti nebo korupce dat. Bez percent-encoding by předání složitého query stringu s libovolným vstupem uživatele rozbilo strukturu URL, vedlo k chybám 400 Bad Request, rozbitým odkazům, nebo dokonce závažným zranitelnostem jako HTTP Parameter Pollution.
Historicky různé systémy URL encoding zvládaly různě, což někdy vedlo k nočním můrám kompatibility. Například data formuláře odeslaná přes content type application/x-www-form-urlencoded tradičně kódují mezery jako plus (+), zatímco RFC 3986 přísně nařizuje „%20“. Moderní webové frameworky a jazyky tyto nuance obecně abstrahují, ale mít robustní, spolehlivý a 100% bezplatný nástroj k ručnímu percent-encoding řetězců zůstává absolutní nutností k ladění, testování API a sestavování složitých deep linků. Pochopením podkladové mechaniky percent-encoding vývojáři zaručí, že aplikace jsou robustní vůči různým vstupům znaků a efektivně zvládnou vše od standardního textu ASCII po složité vícebajtové emoji Unicode.