URLs und Abfragezeichenfolgen
URLs und Abfragezeichenfolgen
Die URL-Schicht implementiert das WHATWG-Style-Parsing — das gleiche Verhalten, das Browser anwenden — sodass aus Dokumenten extrahierte URLs auf die gleiche Weise aufgelöst und normalisiert werden, wie es ein echter User-Agent tun würde.
Parsing und Validierung
URL.parse() analysiert eine absolute oder relative URL; URL.can_parse() gibt die Gültigkeit zurück, ohne ein Objekt zu erzeugen. Parse-Fehler werfen die typisierte URLParseError.
Abfragezeichenfolgen
URLSearchParams liest und bearbeitet Abfrageparameter: append(), get(), get_all(), has() und delete() decken den Round-Trip ab und erhalten die Mehrwert-Semantik bei.
Tipps und bewährte Vorgehensweisen
- Verwenden Sie
can_parse()für einfache Validierung in Filtern; konstruieren Sie mitparse()nur, wenn Sie die Komponenten benötigen - Denken Sie daran, dass Abfrage-Schlüssel wiederholt werden können — verwenden Sie
get_all(), wenn ein Parameter mehrmals auftreten kann - Fangen Sie
URLParseErrorab, anstatt vorab mit regulären Ausdrücken zu validieren
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
| Relative URL lässt sich nicht parsen | Keine Basis angegeben | Geben Sie die Basis gemäß URL.parse() an |
| Nur der erste Abfragewert zurückgegeben | get() bei einem wiederholten Schlüssel verwendet | Verwenden Sie get_all() |
| Seltsame Zeichen in Komponenten | WHATWG-Normalisierung im Einsatz | Erwartet — das entspricht dem Browserverhalten |
FAQ
Folgt das Parsen dem WHATWG-Standard?
Ja — Normalisierung und Aufteilen der Komponenten spiegeln das Verhalten von Browsern wider.
Wie prüfe ich eine URL, ohne sie zu parsen?
URL.can_parse() gibt die Gültigkeit zurück, ohne ein Objekt zu erstellen.
Kann ich einen Query-String vor Ort bearbeiten?
Ja — URLSearchParams unterstützt append/get/has/delete Round-Trips.
API Reference Zusammenfassung
| Klasse/Methode | Beschreibung |
|---|---|
URL.parse | Parsen Sie eine URL |
URL.can_parse | Gültigkeitsprüfung ohne Konstruktion |
URLSearchParams.append | Füge einen Abfrageparameter hinzu |
URLSearchParams.get_all | Alle Werte für einen Schlüssel |
URLParseError | Fehler beim typisierten Parsen |