¿Cuáles son las partes de una URL?

La mayoría de las veces, es correcto decir cosas como "Compré un dominio" o "Nuestras imágenes están alojadas en otro sitio", incluso si no es estrictamente cierto. Sin embargo, en algunos contextos, es necesario ser más preciso. Por ejemplo, cuando trabajas con 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 API de URL del estándar define métodos para proporcionar acceso a partes de una cadena de URL, como el origen o el esquema.

En este documento, se explica una variedad de términos usados con cadenas de URL HTTP o HTTPS. No se abordan otros tipos de URL, como URLs de archivos o datos. Para términos como host y origin, las definiciones precisas son intrínsecamente complejas, por lo que este documento proporciona ejemplos y vínculos al estándar de URLs, en lugar de intentar dar 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 denominan las partes de la cadena de URL. También puedes abrir este archivo en otra pestaña en url-parts.glitch.me.


Los nombres de las partes de las URLs se indican alfabéticamente a continuación.

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

Es un dominio de nivel superior definido en la lista de códigos de país 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 lo que está 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)

Una entrada en la lista de sufijos públicos, que incluye un TLD y(en el caso de los eTLD con varias partes) dominios adicionales debajo de eso: segundo nivel, tercer nivel, etcétera.

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

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

eTLD+1

Consulta el 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 y example.schools.nsw.edu.au.

Nombre del archivo

No se define en el estándar de URL y no es parte de la API de URL, pero se suele usar para hacer referencia a la parte final de la URL que no es una ruta de acceso, según la suposición de que la URL se asigna directamente a una estructura de directorio (a menudo incorrecta).

Por ejemplo, con https://example.com/dir/file.html, es posible que file.html se haga referencia al nombre del archivo.

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

Fragment

Es una cadena que sigue a un carácter # al final de una URL 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 el # 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 para 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 port, incluso si se usa un puerto no predeterminado.

Hash (o ancla)

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

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

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

Host

Según se define en el estándar de URL, un host puede ser un nombre de dominio, una dirección IP v4, 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 para el 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 JavaScript URL define el nombre de host, pero el estándar de URL no define el nombre de host. 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 vínculos al estándar HTML para el segundo plano.

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 (Password)

Consulta nombre de usuario.

Nombre de ruta

En el caso de una URL HTTP o HTTPS, la parte que sigue al dominio y el puerto (si se definen), que incluye un nombre de archivo (si está definido), pero sin 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, "Path" se usa para referirse al nombre de la ruta sin el nombre de archivo. Por ejemplo, para la URL https://example.com/cat/pattern/tabby.html, la "ruta" es /cat/pattern.

Puerto

El número después de : 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 de 16 bits sin firma: en otras palabras, un número entero entre 0 y 65535 inclusive.

Para una URL HTTP, el puerto predeterminado es 80. Para HTTPS, el puerto predeterminado es 443. No es necesario que una URL especifique el número de puerto, a menos que se use un puerto no predeterminado.

La API muestra una string 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.

Consulta (o "cadena de consulta")

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

Dominio que se puede registrar

  • En el caso de 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 anterior a él, 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.
  • En el caso de los eTLD con tres o más partes, el eTLD y el dominio anterior.

Esquema

La parte de la URL (antes del ://) 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 debe realizarse mediante el protocolo HTTPS. En el caso de una solicitud a una URL con un esquema como file, mailto o git, que no corresponde con 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 parámetros y sus valores, proporcionados después de 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.

Buscar parámetros

Haz referencia a un elemento de los datos pasados 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

El dominio antes que un dominio de nivel superior.

  • Para 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

Sitio se define mediante el estándar HTML, junto con el mismo sitio, que incluye el esquema y el mismo sitio sin esquemas.

El sitio no está definido 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 del scheme, el eTLD y la etiqueta antes de eso. Por ejemplo, para la URL https://www.example.com/cat, el sitio es https://example.com. (En esta URL, el eTLD es el mismo que el dominio de nivel superior).
  • En el caso de los eTLD multiparte, como co.uk, github.io o sa.edu.au, el "sitio" consta del 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, el sitio 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 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 anteriores al 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 eTLD de dos partes en los que solo se permiten los 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 anteriores.

  • 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 localizar el texto de la página, desplazarse hasta él y destacarlo.

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

Por ejemplo, para vincular al primer caso del texto "fragmento" en esta página, usa la URL https://web.dev/articles/url-parts#:~:text=fragment.

Obtén más información: Fragmentos de texto.

Dominio de nivel superior (TLD)

Un nombre de dominio que aparece en la base de datos de zonas 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.
  • Para 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 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 estos elementos son obsoletos 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á en texto sin formato y no está encriptado. Si el nombre de usuario contiene símbolos : o @, se debe codificar como URL %3A y %40 respectivamente.


Más información