Utilia

Parser adresów URL

Wklej adres URL, aby zobaczyć protokół, host, port, segmenty ścieżki, zdekodowane parametry zapytania i fragment, a potem edytuj parametry i złóż adres.

Jak przeanalizować adres URL

  1. Wklej adres w pole Adres URL do analizy. Jest analizowany podczas wpisywania; możesz też nacisnąć Enter lub kliknąć Analizuj URL.
  2. Odczytaj jego części: Protokół, Nazwa hosta, Port, Host (z portem), Origin, Nazwa użytkownika, Hasło, Ścieżka i Fragment (#).
  3. Sprawdź listę Segmenty ścieżki i tabelę Parametry zapytania, która pokazuje każdy klucz i wartość po zdekodowaniu, obok tekstu w kolumnie Surowy.
  4. W sekcji Edytuj i złóż ponownie zmień klucz lub wartość, kliknij Dodaj parametr lub Usuń albo zmień fragment. Złożony adres URL aktualizuje się podczas pisania.
  5. Kliknij Kopiuj, aby skopiować nowy adres.

Jeśli wkleisz adres bez schematu, np. example.com/strona, narzędzie przyjmie https:// i poinformuje cię o tym.

Z czego składa się adres URL

Narzędzie korzysta z wbudowanego w przeglądarkę parsera URL zgodnego ze standardem WHATWG URL, więc widzi adres dokładnie tak jak przeglądarka. Weźmy https://ann:secret@shop.example.com:8080/en/products?size=M#reviews:

  • Protokół (https:) to schemat mówiący przeglądarce, jak pobrać zasób.
  • Nazwa użytkownika i Hasło (ann, secret) to opcjonalne dane logowania. Hasło jest domyślnie zamaskowane; zaznacz Pokaż hasło, aby je zobaczyć. Przeglądarki usuwają dziś takie dane z linków lub je odrzucają, a adresu, który je zawiera, nigdy nie należy udostępniać.
  • Nazwa hosta (shop.example.com) to nazwa serwera. Domeny z międzynarodowymi znakami (np. z polskimi literami) są pokazywane w postaci punycode (xn--…), której używa DNS.
  • Port (8080) jest pokazywany, gdy adres go podaje. W przeciwnym razie narzędzie zaznacza port domyślny schematu: 80 dla http i ws, 443 dla https i wss, 21 dla ftp. Port równy domyślnemu, np. :443 przy https, parser pomija.
  • Host (z portem) łączy oba elementy, a Origin to schemat + host + port – jednostka, której przeglądarki używają w regułach bezpieczeństwa, takich jak CORS.
  • Ścieżka (/en/products) jest dzielona na Segmenty ścieżki, każdy zdekodowany procentowo, więc caf%C3%A9 czyta się jako café.
  • Fragment (#) (reviews) wskazuje część strony. Nigdy nie jest wysyłany na serwer.

Parametry zapytania

Query string jest dzielony na &, a każda para – na pierwszym =. Klucze i wartości są dekodowane tak, jak kodują je formularze HTML: sekwencje %XX stają się znakami, a + – spacją. Powtarzające się klucze, typowe dla filtrów i pól wielokrotnego wyboru (size=M&size=L), są zachowywane wszystkie i oznaczane po kolei „(powtórzony 1/2)”, „(powtórzony 2/2)”. Klucz bez = jest pokazywany z pustą wartością. Gdy sekwencji nie da się zdekodować, wyświetlany jest surowy tekst.

Edycja i ponowne złożenie

Edytor startuje z bieżącymi parametrami. Puste wiersze są pomijane. Nowy query string jest kodowany jak przy wysyłaniu formularza, tak jak robi to URLSearchParams: spacje stają się +, a zastrzeżone znaki, takie jak &, = czy #, są kodowane procentowo, więc wartość może je bezpiecznie zawierać. Przydaje się to do usuwania parametrów śledzących (np. utm_source), zmiany numeru strony czy budowania linków testowych. Gdy hasło jest ukryte, jest zamaskowane także w polu Złożony adres URL, ale Kopiuj kopiuje prawdziwy adres.

Najczęściej zadawane pytania

Dlaczego narzędzie twierdzi, że mój adres jest niepoprawny?

Najczęstsze przyczyny to spacje w nazwie hosta, port większy niż 65535, brak hosta po https:// albo znaki niedozwolone w nazwie hosta. Tekst bez kropki, np. pojedyncze słowo, też nie jest traktowany jako nazwa hosta.

Czy adres jest odwiedzany lub gdzieś wysyłany?

Nie. Adres jest tylko analizowany w twojej przeglądarce. Do strony nie jest wysyłane żadne żądanie.

Dlaczego %20 zmieniło się w + w złożonym adresie?

Oba oznaczają spację w query stringu. Ponowne złożenie używa kodowania formularzy stosowanego przez przeglądarki i większość frameworków serwerowych, które zapisuje spacje jako +.

Czy obsługuje adresy mailto:, tel: lub data:?

Tak. One też są analizowane, ale nie mają hosta ani portu: ich treść pojawia się w polu Ścieżka.

Czym różni się Host od nazwy hosta?

Nazwa hosta to sama nazwa. Host (z portem) dodaje port, gdy podano go jawnie, jak w example.com:8080.