Parser URL

URL-e (Uniform Resource Locator) identyfikuja zasoby w sieci. To narzedzie rozklada URL-e na ich czesci skladowe: schemat, host, port, sciezke, parametry zapytania i fragment. Automatycznie dekoduje wartosci zakodowane procentowo, obsluguje miedzynarodowe nazwy domenowe (IDN) z konwersja Punycode i moze wykrywac osadzone dane takie jak Base64 lub JSON w parametrach.

Specyfikacje

Typowe zastosowania

  • Debugowanie URL-i przekierowania OAuth 2.0 i parametrow callback
  • Inspekcja URL-i webhookow i ich parametrow zapytania
  • Analiza parametrow sledzenia (UTM, dane referrera)
  • Dekodowanie mobilnych deep linkow (app://, niestandardowe schematy)
  • Rozwiazywanie problemow z routingiem URL
  • Konwersja miedzynarodowych nazw domenowych miedzy Unicode a Punycode

Funkcje

  • Parsowanie wszystkich komponentow URL (schemat, host, port, sciezka, zapytanie, fragment)
  • Automatyczne dekodowanie wartosci zakodowanych procentowo (URL-encoded)
  • Parsowanie query string na pary klucz-wartosc
  • Konwersja miedzynarodowych nazw domenowych (IDN) miedzy Unicode a Punycode
  • Wykrywanie i dekodowanie Base64 lub JSON w wartosciach parametrow
  • Kopiowanie poszczegolnych komponentow do schowka

Przyklady

Callback OAuth

Wypróbuj →

Callback autoryzacji OAuth 2.0 z parametrami code i state.

https://app.example.com/callback?code=abc123&state=xyz789&redirect_uri=https%3A%2F%2Fexample.com

Domena miedzynarodowa (Punycode)

Wypróbuj →

URL z nazwa domeny zakodowana w Punycode (prefiks xn-- wskazuje IDN).

https://xn--mnchen-3ya.de/path

Domena miedzynarodowa (Unicode)

Wypróbuj →

URL z nazwa domeny w Unicode, ktora zostanie przekonwertowana na Punycode.

https://münchen.de/path

Wskazowki

  • Kodowanie procentowe zastepuje niebezpieczne znaki %XX, gdzie XX to wartosc szesnastkowa.
  • Fragment (#) nigdy nie jest wysylany do serwera; jest tylko po stronie klienta.
  • Parametry zapytania moga pojawiac sie wielokrotnie z tym samym kluczem.
  • Niektore znaki jak @ i : w informacjach o uzytkowniku wymagaja kodowania.
  • Uzywaj encodeURIComponent() dla wartosci parametrow, encodeURI() dla pelnych URL-i.

Zrozumienie Parser URL

URL-e (Uniform Resource Locator) sa systemem adresowania w sieci, zdefiniowanym przez RFC 3986 jako specyficzny typ URI (Uniform Resource Identifier). URL sklada sie z kilku komponentow: schematu (protokolu jak https), autorytetu (hosta, opcjonalnego portu, opcjonalnych informacji o uzytkowniku), sciezki, opcjonalnego query stringa z parametrami klucz-wartosc i opcjonalnego identyfikatora fragmentu.

Kodowanie procentowe (kodowanie URL) to mechanizm reprezentowania znakow specjalnych w URL-ach. Znaki spoza niezastrzezonego zestawu (A-Z, a-z, 0-9, -, _, ., ~) musza byc zakodowane jako %XX, gdzie XX to wartosc szesnastkowa bajtu. Spacje staja sie %20 (lub + w query stringach). Znaki spoza ASCII sa najpierw kodowane jako bajty UTF-8, a nastepnie kazdy bajt jest kodowany procentowo.

Query stringi przenoszą parametry jako pary key=value oddzielone znakami &. Aplikacje webowe uzywaja ich do terminow wyszukiwania, paginacji, filtrowania, sortowania i sledzenia (parametry UTM). URL-e przekierowania OAuth 2.0 przenoszą kody autoryzacji i tokeny stanu w parametrach zapytania. Zlozone wartosci moga same byc URL-encoded, tworzac warstwy kodowania wymagajace ostroznego dekodowania.

Miedzynarodowe nazwy domenowe (IDN) uzywaja kodowania Punycode (RFC 3492) do reprezentowania znakow spoza ASCII w nazwach domenowych. Prefiks xn-- sygnalizuje etykiete zakodowana w Punycode. Na przyklad muenchen.de staje sie xn--mnchen-3ya.de. To kodowanie zapewnia kompatybilnosc z systemem DNS opartym wylacznie na ASCII, jednoczesnie wspierajac nazwy domenowe w dowolnym pismie.

JavaScript oferuje dwie funkcje do kodowania URL sluzace roznym celom. encodeURI koduje pelny URI, zachowujac znaki o znaczeniu strukturalnym w URL-ach (takie jak : / ? # @ i =). encodeURIComponent koduje pojedynczy komponent URI, taki jak wartosc parametru zapytania, kodujac wszystkie znaki specjalne wlacznie z / i &. Uzywaj encodeURIComponent dla wartosci parametrow, a encodeURI tylko do kodowania pelnego URL-a. Identyfikator fragmentu (wszystko po #) jest zdefiniowany przez RFC 3986 jako wylacznie po stronie klienta — przegladarki uzywaja go do nawigacji na stronie i routingu po stronie klienta w aplikacjach jednostronicowych, ale nigdy nie jest dolaczany do zadan HTTP wysylanych do serwera.

Punycode to kodowanie umozliwiajace miedzynarodowe nazwy domenowe w systemie DNS opartym wylacznie na ASCII. Domeny zawierajace znaki nielacinskie sa przechowywane w DNS przy uzyciu Punycode z prefiksem xn--, wiec muenchen.de jest przechowywane jako xn--mnchen-3ya.de. Przegladarki wyswietlaja uzytkownikowi forme Unicode, a w tle uzywaja formy Punycode do rozwiazywania DNS.

Query stringi moga zawierac wiele wartosci dla tej samej nazwy parametru, np. ?color=red&color=blue. Rozne frameworki obsluguja to inaczej — niektore zwracaja ostatnia wartosc, niektore pierwsza, a niektore tablice wszystkich wartosci. To narzedzie pokazuje wszystkie wystapienia parametrow. W JavaScript URLSearchParams.getAll() pobiera wszystkie wartosci dla powtarzajacego sie klucza, a nie tylko pierwsza lub ostatnia.

← Powrot do wszystkich narzedzi