¿Cuáles son las partes de una URL?

La mayoría de las veces, está bien decir frases como "Compré un dominio" o "Nuestras imágenes se alojan en un sitio diferente", incluso si eso no es del todo cierto. Sin embargo, en algunos contextos, es necesario ser más preciso. Por ejemplo, cuando se trata de cookies, debes comprender la diferencia entre sitio y origen.

Los nombres de las partes de la URL se especifican en un estándar, que también define una API de JavaScript:

  • El estándar de URL define las URLs y los conceptos relacionados para permitir que los ingenieros compilen navegadores web interoperables.
  • El componente de la API de URL del estándar define métodos para proporcionar acceso a partes de una cadena de URL, como el esquema o el origen.

En este documento, se explica una variedad de términos que se usan con cadenas de URL HTTP o HTTPS. No se incluyen otros tipos de URLs, como las URLs de archivos o datos. En el caso de términos como host y origin, las definiciones precisas son inherentemente complejas, por lo que este documento proporciona ejemplos y vínculos al estándar de URL, en lugar de intentar explicaciones completas.

Puedes usar JavaScript para obtener los nombres de los componentes de URL que define la API de URL. Por ejemplo:

let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);

Analizador de URLs

Edita la siguiente URL para ver cómo se nombran las partes de la cadena de URL. También puedes abrirlo en una pestaña independiente en url-parts.glitch.me.


A continuación, se enumeran alfabéticamente los nombres de las partes de la URL.

Dominio de nivel superior con código de país (ccTLD)

Un dominio de nivel superior definido en la lista de códigos de países ISO 3166-1.

  • Para https://example.org.au, el ccTLD es au.
  • Para https://example.io, el ccTLD es io.

Nombre de dominio

Las partes de una URL HTTP o HTTPS separadas por puntos: todo después del esquema, pero antes de la ruta de acceso o el puerto (si se especifica). Cada parte del nombre de dominio se conoce como etiqueta.

URL Nombre de dominio
https://example.github.io/path example.github.io
https://support.example.org.au:443 support.example.org.au

Dominio de nivel superior efectivo (eTLD)

Es una entrada de la Lista de sufijos públicos, que incluye un TLD y(para los eTLD con varias partes) dominios adicionales debajo de él: de segundo nivel, de tercer nivel, etcétera.

  • Por ejemplo: com, com.au, github.io, sa.edu.au, schools.nsw.edu.au.

Un "sufijo público", como estos ejemplos, es un nombre con el que se pueden registrar los dominios. La lista de sufijos públicos es una lista de todos los sufijos públicos conocidos y se actualiza con frecuencia. Los navegadores, como Chromium y Firefox, usan la lista en sus compilaciones.

eTLD+1

Consulta dominio registrable.

Un eTLD más el subdominio que lo precede.

  • Por ejemplo: example.com, example.org.au, example.github.io, example.sa.edu.au, example.schools.nsw.edu.au.

Nombre del archivo

No se define en el estándar de URL ni forma parte de la API de URL, pero se usa comúnmente para referirse a la parte final de la URL que no es de ruta de acceso, en función de la suposición, a menudo incorrecta, de que la URL se asigna directamente a una estructura de directorio.

Por ejemplo, con https://example.com/dir/file.html, file.html se puede denominar el nombre del archivo.

Los navegadores también usan el valor del nombre de archivo para asignarle un nombre a un recurso si se descarga. Por ejemplo, https://example.com/images/image.jpg se suele guardar de forma local en image.jpg.

Fragment

Es una cadena que sigue a un carácter # al final de una URL y que proporciona un identificador de fragmento.

  • Por ejemplo, la URL https://example.com/cats#tabby tiene un valor de identificador de fragmento de tabby.

La parte que incluye # se conoce como hash o ancla. También puedes vincular y destacar un fragmento de texto.

La API de URL muestra el hash en lugar del fragmento.

Nombre de dominio completamente calificado (FQDN)

Es una dirección completa de un sitio web o un servidor que se asigna a una dirección IP.

URL FQDN
https://example.com:1234/cats example.com
https://api.example.github.io api.example.github.io

El FQDN de una URL no incluye el puerto, incluso si se usa un puerto que no es predeterminado.

Hash (o ancla)

Es una cadena que sigue a un carácter # al final de una URL y que proporciona un identificador de fragmento.(En algunos contextos, se lo conoce como "anclaje").

La parte que excluye # se conoce como fragmento. También puedes vincular y destacar un fragmento de texto.

La API de URL muestra el hash en lugar del fragmento.

Host

Como se define en el estándar de URL, un host puede ser un nombre de dominio, una dirección IPv4, una dirección IPv6, un host opaco o un host vacío.

  • La definición de host del estándar de URL no incluye el puerto.
  • URL.host incluye el puerto, a menos que sea el predeterminado del esquema.
  • URL.hostname no incluye el puerto.
URL URL.host
https://www.example.com:443/cat www.example.com
// 443 is the default port for the scheme
https://www.example.com:1234/cat www.example.com:1234
https://cat.example.github.io cat.example.github.io

Nombre de host

La API de URL de JavaScript define el nombre de host, pero el estándar de URL no lo hace. Consulta la representación del host para obtener más detalles.

URL.hostname muestra el host sin el puerto.

URL URL.hostname
https://www.example.com:443/cat www.example.com
https://www.example.com:1234/cat www.example.com
https://cat.example.github.io cat.example.github.io

Origen

El estándar de URL define origin y vincula al estándar HTML para el fondo.

Para las URLs HTTP o HTTPS, URL.origin muestra el esquema, el host y el puerto (a menos que el puerto sea el predeterminado para el esquema).

URL URL.origin
https://www.example.com:443/cat https://www.example.com
https://www.example.com:1234/cat https://www.example.com:1234
https://cat.example.github.io https://cat.example.github.io

Parámetro

Consulta Parámetros de búsqueda.

Contraseña

Consulta nombre de usuario.

Nombre de ruta

Para una URL HTTP o HTTPS, la parte posterior al dominio y el puerto (si está definido), que incluye un filename (si está definido), pero no la cadena de búsqueda ni el hash

URL URL.pathname
https://example.com [empty string]
https://example.com:8000/search?q=tabby /search
https://example.github.io/cat/pattern#tabby /cat/pattern
https://example.github.io/README.md /README.md

A veces, se usa "ruta" para referirse a la ruta de acceso sin el nombre del archivo. Por ejemplo, para la URL https://example.com/cat/pattern/tabby.html, la "ruta de acceso" es /cat/pattern.

Puerto

Es el número que aparece después de un : en una URL que identifica un puerto de red. Por ejemplo, para la URL https://example.com:1234/tabby, el número de puerto es 1234.

El número de puerto debe ser un número entero sin signo de 16 bits; es decir, un número entero entre 0 y 65,535 inclusive.

Para una URL HTTP, el puerto predeterminado es 80; para HTTPS, el predeterminado es 443. Una URL no necesita especificar el número de puerto, a menos que se use un puerto que no sea predeterminado.

La API muestra una cadena vacía si el puerto es el predeterminado para el esquema.

URL URL.port
https://example.com // empty string
https://example.com:443/foo // empty string: port is default for scheme
https://www.example.com:1234/foo 1234

Protocolo

El esquema seguido de : (por ejemplo, http: o https:).

protocol está disponible en la API de URL, pero scheme no.

Búsqueda (o "cadena de búsqueda")

La parte de búsqueda de la URL, sin el ? inicial

Dominio registrable

  • Para una URL con un eTLD de una sola parte, como com o org (es decir, un eTLD que corresponde a un TLD), el dominio y el dominio de segundo nivel que lo preceden: por ejemplo, example.com o example.org.
  • Para una URL con un eTLD de dos partes en la que solo se permite el registro de tercer nivel (es decir, entradas en la lista de sufijos públicos, como com.au y github.io), el dominio de nivel superior de dos partes ("sufijo público") y el nombre de dominio de tercer nivel justo antes de eso. Por ejemplo: example.org.au o example.github.io.
  • Para los eTLD con tres o más partes, el eTLD y el dominio anterior

Esquema

Es la parte de la URL (antes de ://) que define el protocolo de red (o la acción que debe realizar el usuario-agente) cuando se realiza una solicitud a una URL. Por ejemplo, una solicitud a una URL con un esquema https se debe realizar con el protocolo HTTPS. En el caso de una solicitud a una URL con un esquema como file, mailto o git que no corresponde a un protocolo de red, el comportamiento depende del usuario-agente. Por ejemplo, cuando un usuario hace clic en un vínculo mailto, la mayoría de los navegadores abren su aplicación de correo electrónico predeterminada con los valores de la URL href del vínculo.

Un signo de interrogación seguido de una serie de pares clave-valor que representan los parámetros y sus valores, que se proporcionan después de la pathname.

URL URL.search
https://example.com/cats?pattern=tabby&mood=bonkers ?pattern=tabby&mood=bonkers
https://example.com/cats:443?pattern=tabby ?pattern=tabby

query o "cadena de consulta" hace referencia a search sin el ? inicial.

Consulta también Parámetros de búsqueda.

Parámetros de búsqueda

Se refiere a un elemento de datos que se pasa en una cadena de búsqueda (o "cadena de consulta").

  • Por ejemplo, para https://example.com/cats?pattern=tabby&mood=bonkers, la cadena de búsqueda tiene dos parámetros: pattern=tabby y mood=bonkers.

Dominio de segundo nivel

Es el dominio que se encuentra antes de un dominio de nivel superior.

  • En el caso de la URL https://www.example.com, el dominio de segundo nivel es example.com, un subdominio del dominio de nivel superior com.

  • Para https://example.org.au, el dominio de nivel superior es au, el dominio de segundo nivel es org y el dominio de tercer nivel es example. En este ejemplo, org.au es un subdominio de au y example.org.au es un subdominio de org.au.

Sitio

El sitio se define según el estándar HTML, junto con mismo sitio, que incluye el esquema, y mismo sitio sin esquema.

El sitio no se define en el estándar de URL ni en la API de URL de JavaScript.

En este contexto:

  • En el caso de una URL HTTP o HTTPS con un eTLD de una sola parte, como https://example.com, el sitio consta de scheme, el eTLD y la etiqueta que lo precede. Por ejemplo, para la URL https://www.example.com/cat, el sitio es https://example.com. (para esta URL, el eTLD es el mismo que el dominio de nivel superior).
  • En el caso de los eTLD de varias partes, como co.uk, github.io o sa.edu.au, el "sitio" consta de scheme, el eTLD y la etiqueta anterior. Por ejemplo, para la URL https://cat.example.co.uk/tabby, el sitio es https://example.co.uk y para https://www.education.sa.gov.au es https://education.sa.gov.au.
URL Sitio (con esquema y eTLD+1)
https://cat.example.com/tabby ("https", "example.com")
https://cat.example.co.uk/tabby ("https", "example.co.uk")

A diferencia de origen, el sitio no incluye el puerto.

Subdominio

Es un dominio dentro de un dominio de nivel superior.

En el caso de los sitios con dominios de nivel superior de una sola parte, como com o org, las partes que se encuentran antes del dominio de nivel superior, cada una de las cuales está separada por un punto

  • www.example.com es un subdominio de example.com.
  • support.api.example.org es un subdominio de api.example.org, que es un subdominio de example.org.

En el caso de los TLDs electrónicos de dos partes en los que solo se permiten registros de tercer nivel(es decir, entradas en la lista de sufijos públicos, como co.uk y github.io), los subdominios son las partes del nombre de dominio que preceden a esa parte.

  • Por ejemplo, cat.example.co.uk es un subdominio de example.co.uk.

Fragmento de texto

Es un tipo de fragmento que permite vincular y destacar un rango de texto dentro de una página. Cuando un usuario sigue un vínculo con un fragmento de texto, el navegador intenta ubicar, desplazarse hasta y destacar el texto dentro de la página.

Un fragmento de texto comienza con :~:text=, seguido del término de búsqueda.

Por ejemplo, para vincular a la primera aparición del texto "fragment" en esta página, usa la URL https://web.dev/articles/url-parts#:~:text=fragment.

Más información: Fragmentos de texto.

Dominio de nivel superior (TLD)

Es un nombre de dominio que aparece en la base de datos de la zona raíz, como com o org. Algunos dominios de nivel superior son dominios de nivel superior con código de país, como uk y tv.

Cuando se describen las partes de una URL HTTP o HTTPS, el TLD es el nombre de dominio que sigue al punto final.

  • Para https://example.org, el dominio de nivel superior de la URL es org.
  • En el caso de https://example.org.au, el dominio de nivel superior de la URL es au y org es un dominio de segundo nivel (aunque org también es un dominio de nivel superior). org.au es un eTLD de dos partes.

La Lista de sufijos públicos de los eTLD incluye dominios con una, dos o más partes, por lo que un TLD también puede ser un eTLD. Por ejemplo:

  • Para https://example.com, el eTLD de la URL es com, que también es un TLD.

Nombre de usuario

Se puede proporcionar un nombre de usuario y una contraseña opcionales al comienzo de la URL, pero ya no son compatibles por motivos de seguridad y se ignorarán en muchos casos.

Por ejemplo, con https://user123:password1@example.com, el nombre de usuario es user123. Ten en cuenta que el nombre de usuario (y la contraseña) están en texto sin formato y no están encriptados. Si el nombre de usuario contiene símbolos : o @, deben estar codificados como URL en %3A y %40, respectivamente.


Más información