Adresy URL i ciągi zapytań
Adresy URL i ciągi zapytań
Warstwa URL implementuje parsowanie w stylu WHATWG — taką samą zachowanie, jakie stosują przeglądarki — więc URL-e wyodrębnione z dokumentów są rozwiązywane i normalizowane tak, jak w rzeczywistym agencie użytkownika.
Parsowanie i walidacja
URL.parse() parsuje bezwzględny lub względny URL; URL.can_parse() zwraca informację o poprawności bez tworzenia obiektu. Błędy parsowania podnoszą typowany URLParseError.
Ciągi zapytań
URLSearchParams odczytuje i edytuje parametry zapytania: append(), get(), get_all(), has() i delete() obejmują pełny cykl, zachowując semantykę wielowartościową.
Wskazówki i najlepsze praktyki
- Użyj
can_parse()do taniej walidacji w filtrach; konstruuj za pomocąparse()tylko wtedy, gdy potrzebujesz komponentów - Pamiętaj, że klucze zapytań mogą się powtarzać — użyj
get_all(), gdy parametr może wystąpić więcej niż raz - Przechwytuj
URLParseErrorzamiast wstępnie walidować przy pomocy wyrażeń regularnych
Typowe problemy
| Problem | Przyczyna | Naprawa |
|---|---|---|
| Względny URL nie może zostać sparsowany | Nie podano bazy | Podaj bazę zgodnie z URL.parse() |
| Zwrócono tylko pierwszą wartość zapytania | Użyto get() przy powtarzającym się kluczu | Użyj get_all() |
| Dziwne znaki w komponentach | Normalizacja WHATWG w działaniu | Oczekiwane — to odpowiada zachowaniu przeglądarki |
FAQ
Czy parsowanie jest zgodne ze standardem WHATWG?
Tak — normalizacja i podział komponentów odzwierciedlają zachowanie przeglądarki.
Jak sprawdzić adres URL bez jego parsowania?
URL.can_parse() zwraca ważność bez tworzenia obiektu.
Czy mogę edytować ciąg zapytania w miejscu?
Tak — URLSearchParams obsługuje round-tripy append/get/has/delete.
API Reference Podsumowanie
| Klasa/Metoda | Opis |
|---|---|
URL.parse | Parsuj adres URL |
URL.can_parse | Sprawdzenie ważności bez tworzenia |
URLSearchParams.append | Dodaj parametr zapytania |
URLSearchParams.get_all | Wszystkie wartości dla klucza |
URLParseError | Błąd parsowania typowanego |