Dlaczego adresy URL wymagają kodowania?
Adresy URL, czyli linki, które codziennie wpisujemy w przeglądarkę, mają ściśle określoną strukturę i zestaw dozwolonych znaków. Standard RFC 3986, który definiuje budowę jednolitego identyfikatora zasobów (URI), dzieli znaki na dwie grupy: zastrzeżone i niezastrzeżone. Znaki niezastrzeżone to litery alfabetu łacińskiego (A-Z, a-z), cyfry (0-9) oraz kilka symboli: -, _, ., ~. Mogą one występować w adresie URL bez żadnych modyfikacji. Jednak druga grupa, znaki zastrzeżone, pełni specjalne funkcje. Znaki takie jak / oddzielają segmenty ścieżki, ? rozpoczyna parametry zapytania, & oddziela kolejne parametry, a # wskazuje na fragment dokumentu. Gdy któryś z tych znaków musi pojawić się w adresie w innym kontekście – na przykład jako część nazwy pliku lub wartości parametru – musi zostać zakodowany. W przeciwnym razie przeglądarka lub serwer mogłyby błędnie zinterpretować strukturę adresu, co prowadziłoby do błędów 404 lub nieprawidłowego działania aplikacji. Kodowanie URL, znane też jako kodowanie procentowe, polega na zastąpieniu problematycznego znaku symbolem % i dwiema cyframi szesnastkowymi odpowiadającymi jego wartości w tabeli ASCII lub UTF-8. Na przykład spacja, która jest niedozwolona w URL, jest kodowana jako %20.