URLs y Cadenas de Consulta
URLs y Cadenas de Consulta
La capa de URL implementa el análisis al estilo WHATWG — el mismo comportamiento que aplican los navegadores — de modo que las URLs extraídas de documentos se resuelven y normalizan como lo haría un agente de usuario real.
Análisis y Validación
URL.parse() analiza una URL absoluta o relativa; URL.can_parse() responde a la validez sin construir un objeto. Los fallos de análisis lanzan la URLParseError tipada.
Cadenas de Consulta
URLSearchParams lee y edita los parámetros de consulta: append(), get(), get_all(), has() y delete() cubren el ciclo completo, preservando la semántica de valores múltiples.
Consejos y Mejores Prácticas
- Utiliza
can_parse()para una validación económica en los filtros; construye conparse()solo cuando necesites los componentes - Recuerda que las claves de consulta se repiten — utiliza
get_all()cuando un parámetro pueda aparecer más de una vez - Captura
URLParseErroren lugar de prevalidar con expresiones regulares
Problemas comunes
| Problema | Causa | Corrección |
|---|---|---|
| La URL relativa no se puede analizar | No se proporcionó base | Proporcione la base según URL.parse() |
| Solo se devuelve el primer valor de la consulta | Se utilizó get() en una clave repetida | Usar get_all() |
| Caracteres extraños en los componentes | Normalización WHATWG en acción | Esperado — esto coincide con el comportamiento del navegador |
FAQ
¿El análisis sigue el estándar WHATWG?
Sí — la normalización y la división de componentes reflejan el comportamiento del navegador.
¿Cómo puedo comprobar una URL sin analizarla?
URL.can_parse() devuelve validez sin construcción de objetos.
¿Puedo editar una cadena de consulta en el lugar?
Sí — URLSearchParams admite recorridos de append/get/has/delete.
API Reference Resumen
| Clase/Método | Descripción |
|---|---|
URL.parse | Analizar una URL |
URL.can_parse | Verificación de validez sin construcción |
URLSearchParams.append | Agregar un parámetro de consulta |
URLSearchParams.get_all | Todos los valores para una clave |
URLParseError | Fallo de análisis tipado |