Parser URL

Gdy webhook zawodzi albo link śledzący niesie złe parametry, najszybciej jest rozbić adres URL i odczytać każdą część. Wklej dowolny adres URL, a ten parser rozbije go na składowe: schemat, nazwę użytkownika i hasło, host, port, ścieżkę, ciąg zapytania i fragment, a następnie rozwinie zapytanie w tabelę par klucz-wartość. Działa na naszym serwerze, korzystając ze standardowego parsera URL w PHP, więc widzisz dokładnie, jak ten sam link odczytałby backend w PHP.

Jak sparsować adres URL

  1. 1

    Wklej adres URL

    Wrzuć dowolny adres URL, bezwzględny lub względny. Nie ma nic do klikania: parsowanie następuje w trakcie pisania.

  2. 2

    Odczytaj składowe

    Tabela wypełnia się znalezionym schematem, hostem, portem, użytkownikiem, hasłem, ścieżką, zapytaniem i fragmentem. Puste części pokazują kreskę.

  3. 3

    Rozwiń zapytanie

    Każda para `key=value` pojawia się we własnym wierszu, a kodowanie procentowe i `+` są dekodowane na prawdziwe znaki.

  4. 4

    Skopiuj parametry

    Przycisk kopiowania pobiera wszystkie parametry zapytania naraz jako wiersze `key=value`, gotowe do wklejenia w kliencie API.

Anatomia adresu URL

Weźmy ten adres URL: https://user:pass@api.example.com:8443/v1/users?page=2&sort=name#profile. Parser rozbija go na:

Składowa Wartość
scheme https
user user
pass pass
host api.example.com
port 8443
path /v1/users
query page=2&sort=name
fragment profile

Następnie ciąg zapytania jest rozwijany we własnej tabeli: page = 2 i sort = name.

Jak odczytywany jest ciąg zapytania

  • Wartości są dekodowane z kodowania procentowego, a + staje się spacją, więc q=hello%20world i q=hello+world odczytywane są tak samo jako hello world.
  • Para jest dzielona na swoim pierwszym =, więc token=a=b=c zachowuje a=b=c jako wartość.
  • Powtórzone klucze zachowują tylko ostatnią wartość: ?id=1&id=2 zwraca id = 2. Aby zachować wszystkie wartości, użyj składni tablicowej id[]=1&id[]=2, która wyświetla się jako lista.
  • Klucze w nawiasach kwadratowych, jak filter[status]=open, stają się strukturą zagnieżdżoną wyświetlaną jako JSON.

Porty, ścieżki i fragmenty

  • Port jest pokazywany dokładnie tak, jak został zapisany. Nic nie jest dodawane ani usuwane, więc :443 pojawia się jako 443, a adres URL bez portu pozostawia wiersz pusty.
  • Ukośnik na końcu zmienia ścieżkę: https://a.com ma pustą ścieżkę, a https://a.com/ ma ścieżkę /.
  • Fragment (po #) to wartość używana wyłącznie przez przeglądarkę do przewijania do kotwicy lub sterowania routerem po stronie klienta. Nigdy nie dociera do serwera, więc wszystko, co ma odczytać backend, należy umieścić w ciągu zapytania.
  • Host jest zwracany dokładnie tak, jak go wpisano; ten parser nie konwertuje umiędzynarodowionych (nie-ASCII) domen na Punycode ani odwrotnie.

Najczęściej zadawane pytania

Tak. Link względny, taki jak /v1/users?ref=nav, nie ma schematu ani hosta, więc te wiersze pozostają puste, a ścieżka i zapytanie i tak są wypełniane. Całkowicie odrzucany jest tylko adres URL o błędnym formacie, na przykład z nieliczbowym portem, jak http://a.com:port.

Zachowywana jest tylko ostatnia wartość, więc ?id=1&id=2 zwraca id = 2, dokładnie tak, jak odczytałby to backend w PHP. Jeśli potrzebujesz wszystkich wartości, użyj składni tablicowej id[]=1&id[]=2, a pojawią się jako lista.

Parser podaje port dokładnie tak, jak został zapisany. Nigdy nie usuwa portu domyślnego ani nie dodaje brakującego, więc adres URL bez portu pokazuje pusty wiersz, a https://a.com:443 pokazuje 443.

Adres URL jest wysyłany na nasz serwer w celu sparsowania, ponieważ to narzędzie działa po stronie serwera, a nie tylko w twojej przeglądarce. Nie przechowujemy samych adresów URL; zapisujemy jedynie anonimowy licznik użycia parsera.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach