PK Systems PK Systems
Web y marketing

Analizador de URL

Descompone cualquier URL en protocolo, host, puerto, ruta, query y fragmento — con decodificación punycode (IDN) y extracción de pares clave/valor. Todo en el navegador.

Analizador de URL

Pega cualquier URL. Hosts ASCII e internacionalizados son compatibles.

Componentes

Parámetros de la query

ClaveValor

Sin parámetros en la query.

URL normalizada

¿Qué es un analizador de URL?

Un analizador de URL parte un Uniform Resource Locator en las piezas etiquetadas que define la RFC 3986: scheme, userinfo opcional, host (con puerto opcional), ruta, query y fragmento. Cada navegador, servidor, proxy, CDN y verificador de enlaces hace esto internamente antes de enrutar o reescribir un request. Ver la división explícita ayuda a detectar bugs de codificación, barras mal puestas, credenciales por accidente en URLs y ataques homográficos con IDN.

Cómo usar este analizador

Pega una URL en el campo. El panel de componentes se actualiza al instante. Mira la fila host para ver si hay punycode (un host que empieza con xn-- está codificado en IDN), revisa la fila puerto para confirmar si la URL usa el predeterminado del protocolo, y lee la tabla de parámetros para ver exactamente qué claves y valores llegarían al servidor. La fila de URL normalizada muestra cómo queda la URL después de que el parser del navegador la limpia — scheme en minúsculas, puerto predeterminado removido, percent-encoding ordenado.

Por qué los fragmentos no llegan al servidor

El fragmento — la parte después del # — está reservado para el agente de usuario. Los navegadores lo eliminan antes de enviar el request HTTP, y por eso el servidor (y tus logs de acceso, y los datos brutos de página de destino del analytics) no lo puede ver. Las single-page apps abusan de esto a propósito para que la navegación se sienta instantánea: los cambios de ruta actualizan el fragmento en lugar de disparar un request real. Si necesitas que un valor llegue al servidor, ponlo en la query, no en el fragmento.

Anatomía de una URL

Parte Ejemplo Función
protocolhttps:Le dice al cliente qué protocolo hablar.
hostshop.example.comServidor de destino. Puede ser un dominio o IP literal.
port8443Puerto TCP. Predeterminado: 80 para http, 443 para https.
path/cart/checkoutRuta del recurso en el servidor. Siempre comienza con /.
query?id=42&ref=hpPares clave/valor opcionales después del ?.
fragment#paymentAncla del lado del cliente después del #. Nunca llega al servidor.

Preguntas frecuentes

¿Esta herramienta envía mis URLs a algún lado?
No. El parsing usa el constructor URL nativo del navegador; nada se sube. Abre DevTools > Network y ningún request se dispara mientras escribes.
¿Qué es punycode?
Punycode es la codificación ASCII para nombres de dominio internacionalizados. münchen.de viaja como xn--mnchen-3ya.de. El parser muestra ambas formas para que detectes ataques homográficos en los que un host malicioso se disfraza de marca conocida.
¿Por qué el parser muestra userinfo si pego una URL con credenciales?
Porque la RFC 3986 sigue definiendo esa sintaxis. Los navegadores muestran advertencia y eliminan credenciales antes de navegar, pero muchas CLIs, scrapers y SDKs antiguos las aceptan. En revisión de código, tratar cualquier URL con userinfo como sospechosa es un buen default.
¿Las claves repetidas en la query se preservan?
Sí. ?tag=a&tag=b muestra ambas filas. Cómo interpreta los duplicados el servidor depende del framework — PHP guarda el último valor por defecto, URLSearchParams de Node devuelve un array. El parser no deduplica; muestra lo que está en la URL.
¿Qué se decodifica en percent-encoding?
Cada componente se muestra decodificado para legibilidad, pero la URL normalizada conserva la forma canónica percent-encoded para que la pegues de vuelta en código sin pasar por caracteres inseguros. Espacios, barras y caracteres reservados quedan escapados donde corresponde.
¿Puedo analizar URLs mailto: o tel:?
Sí — cualquier URL que el constructor URL del navegador acepte. En mailto: la dirección queda en la ruta; cabeceras como ?subject= aparecen como parámetros de query. Para construir mailto con más comodidad, usa nuestro constructor de mailto.