Koder URL
Koduj i dekoduj URL
Jak używać Koder URL
Koduj i dekoduj URL Darmowe narzędzie online, bez rejestracji, bez nachalnych reklam. Użyj teraz.
Kiedy potrzebne jest kodowanie URL?
URL może zawierać tylko ograniczony zestaw znaków ASCII. Spacje, polskie znaki (ą, ę, ó, ś, ź, ż, ć, ń), znaki interpunkcji i znaki spoza ASCII muszą być zakodowane jako sekwencje procentowe (%XX) dla bezpiecznego przesyłania w URL. Szczególnie ważne dla serwisów obsługujących polskojęzyczne treści.
- Parametry zapytania: Przekazywanie danych wejściowych użytkownika jako parametrów URL wymaga kodowania. Wyszukiwanie "przepis na barszcz" staje się
przepis%20na%20barszcz— każdy polski znak z diakrytykami jest kodowany jako sekwencja procentowa w UTF-8. - Żądania API: Przy programowym budowaniu URL-i koduj parametry przed dodaniem do bazowego URL. Zapobiega błędnym żądaniom i podatnościom bezpieczeństwa jak wstrzyknięcie parametrów.
- Przesyłanie formularzy: Formularze HTML z method="GET" kodują wartości pól w URL. Zrozumienie tego schematu pomaga debugować przesyłanie formularzy i odczytywać oryginalne wartości z logów serwera.
- Linki z polskimi znakami: Przy udostępnianiu URL-i zawierających polskie litery wiele platform może je uszkodzić bez prawidłowego kodowania. Szczególnie przy kopiowaniu między różnymi systemami.
- Debugowanie: Dekoduj zakodowane URL-e, żeby odczytać oryginalne parametry. Przydatne przy analizowaniu żądań sieciowych w DevTools przeglądarki lub logach serwera.
Zasady kodowania: Litery (A–Z, a–z), cyfry (0–9) i znaki -_.~ nigdy nie są kodowane. Wszystkie pozostałe są kodowane jako % plus dwie cyfry hex wartości bajtowej UTF-8. Jeden polski znak diakrytyczny zajmuje 2 bajty (4 cyfry hex) w UTF-8 — np. 'ą' to %C4%85.
Jaka jest różnica między encodeURI a encodeURIComponent w JavaScript?
encodeURI koduje cały URL, nie dotykając znaków strukturalnych mających znaczenie w URL (/, ?, &, #, :). encodeURIComponent koduje wszystko poza literami, cyframi i -_.~. Do kodowania wartości poszczególnych parametrów zawsze używaj encodeURIComponent.
Jaka jest różnica między + a %20 dla spacji?
Oba reprezentują spację w kodowaniu URL, ale w różnych kontekstach. %20 jest poprawną reprezentacją spacji w każdym komponencie URL. Znak + reprezentuje spację tylko w application/x-www-form-urlencoded (dane formularzy HTML) — nie w segmentach ścieżki.
Dlaczego podwójne kodowanie jest problemem?
Jeśli URL zawiera %252F, to zakodowany %2F (który sam jest kodowaniem /). Jedno dekodowanie daje %2F, dwa — /. Podwójne kodowanie pojawia się przy wielokrotnym kodowaniu URL. Może być podatnością path traversal jeśli serwer wielokrotnie dekoduje URL.
Jakie znaki trzeba kodować w segmencie ścieżki URL?
Zarezerwowane znaki ze specjalnym znaczeniem: spacja (%20), # (%23), % (%25), ? (%3F) i inne. Ukośnik / to separator ścieżki — literalny ukośnik w segmencie ścieżki koduj jako %2F.
Co to jest Punycode?
Punycode konwertuje internacjonalizowane nazwy domen (IDN) z znakami spoza ASCII na kodowanie kompatybilne z ASCII. Domeny z polskimi znakami (jak przykład.pl) są konwertowane do Punycode do transmisji. To różni się od kodowania procentowego stosowanego do ścieżek i zapytań URL.
Kodowanie URL vs Base64 vs encje HTML
Kodowanie URL (kodowanie procentowe) sprawia, że dane są bezpieczne dla URL. Base64 sprawia, że dane binarne są bezpieczne dla kontekstów tekstowych (email, JSON). Encje HTML sprawiają, że znaki specjalne są bezpieczne dla HTML: & staje się &, < staje się <. Każde rozwiązuje ten sam problem (reprezentowanie danych w ograniczonym zestawie znaków) dla innego kontekstu docelowego.