URL e stringhe di query
URL e stringhe di query
Il livello URL implementa l’analisi in stile WHATWG — lo stesso comportamento che applicano i browser — così gli URL estratti dai documenti vengono risolti e normalizzati come farebbero in un vero agente utente.
Analisi e convalida
URL.parse() analizza un URL assoluto o relativo; URL.can_parse() restituisce la validità senza costruire un oggetto. I fallimenti di analisi sollevano il URLParseError tipizzato.
Stringhe di query
URLSearchParams legge e modifica i parametri di query: append(), get(), get_all(), has() e delete() coprono il round-trip, preservando la semantica multivalore.
Suggerimenti e migliori pratiche
- Usa
can_parse()per una validazione leggera nei filtri; costruisci conparse()solo quando ti servono i componenti - Ricorda che le chiavi di query si ripetono — usa
get_all()quando un parametro può apparire più di una volta - Gestisci
URLParseErrorinvece di prevalidare con le espressioni regolari
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
| L’URL relativo non riesce a essere analizzato | Nessuna base fornita | Fornisci la base per URL.parse() |
| Restituito solo il primo valore della query | Usato get() su una chiave ripetuta | Usa get_all() |
| Caratteri strani nei componenti | Normalizzazione WHATWG in azione | Previsto — corrisponde al comportamento del browser |
FAQ
L’analisi segue lo standard WHATWG?
Sì — la normalizzazione e la suddivisione dei componenti rispecchiano il comportamento del browser.
Come verificare un URL senza analizzarlo?
URL.can_parse() restituisce la validità senza costruzione dell’oggetto.
Posso modificare una stringa di query in loco?
Sì — URLSearchParams supporta round-trip di append/get/has/delete.
API Reference Sommario
| Classe/Metodo | Descrizione |
|---|---|
URL.parse | Analizza un URL |
URL.can_parse | Controllo di validità senza costruzione |
URLSearchParams.append | Aggiungi un parametro di query |
URLSearchParams.get_all | Tutti i valori per una chiave |
URLParseError | Errore di parsing tipizzato |