La mayoría de las veces, está bien decir cosas como "Compré un dominio" o "Nuestras imágenes están alojadas en otro sitio", incluso si eso 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 creen 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 esquema o el origen.
En este documento, se explican varios términos que se usan con las cadenas de URL de HTTP o HTTPS. No abarca otros tipos de URLs, como las URLs de archivos o de 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 separada en https://chrome.dev/url-parts/.
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)
Es un dominio de nivel superior definido en la lista de códigos de país ISO 3166-1.
Nombre de dominio
Son las partes de una URL de HTTP o HTTPS separadas por puntos: todo lo que se encuentra después del esquema, pero antes de la ruta de acceso o el puerto (si se especifican). 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 (para los eTLD con varias partes) dominios adicionales debajo de ese: 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 los de estos ejemplos, es un nombre con el que se pueden registrar dominios. La Lista de sufijos públicos 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 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 de uso frecuente para hacer referencia a la parte final de la URL que no es una ruta de acceso, según la suposición (a menudo incorrecta) de que la URL se asigna directamente a una estructura de directorios.
Por ejemplo, con https://example.com/dir/file.html, se puede hacer referencia a file.html como el nombre de archivo.
Los navegadores también usan el valor del nombre de archivo para nombrar un recurso si se descarga.
Por ejemplo, https://example.com/images/image.jpg se guardaría 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#tabbytiene un valor de identificador de fragmento detabby.
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 devuelve el hash, no el 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 puerto, incluso si se usa un puerto no predeterminado.
Hash (o anclaje)
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 denomina "ancla").
La parte que excluye el # se conoce como fragmento.
También puedes vincular y destacar un fragmento de texto.
La API de URL devuelve el hash, no el fragmento.
Host
Según 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
hostdel estándar de URL no incluye el puerto. URL.hostincluye el puerto, a menos que este sea el predeterminado para el esquema.URL.hostnameno 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
El nombre de host se define con la API de JavaScript URL, pero no en otro lugar con el estándar de URL. Consulta la representación del host para obtener más detalles.
URL.hostname devuelve el host sin el port.
| 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 se vincula al estándar HTML para proporcionar información de referencia.
Para las URLs HTTP o HTTPS, URL.origin devuelve 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 username.
Nombre de ruta
Para una URL de HTTP o HTTPS, es la parte posterior al dominio y al puerto (si se definen), incluido un filename (si se define), pero sin incluir 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 de acceso" para hacer referencia al nombre de la ruta 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
Número que aparece después de un : en una URL y 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 65535, inclusive.
Para una URL de HTTP, el puerto predeterminado es el 80; para HTTPS, el predeterminado es el 443. Una URL no necesita especificar el número de puerto, a menos que se use un puerto no predeterminado.
La API devuelve 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 lo está.
Consulta (o "cadena de consulta")
La parte de búsqueda de la URL, sin incluir el ? inicial.
Dominio registrable
- Para una URL con un eTLD de una sola parte, como
comoorg(es decir, un eTLD que corresponde a un TLD), el dominio y el dominio de segundo nivel que lo precede: por ejemplo,example.comoexample.org. - En el caso de una URL con un eTLD de dos partes en el que solo se permite el registro de tercer nivel (es decir, entradas en la Lista de sufijos públicos, como
com.auygithub.io), el dominio de nivel superior de dos partes ("sufijo público") y el nombre de dominio de tercer nivel justo antes de ese. Por ejemplo:example.org.auoexample.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 agente de usuario) 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.
Buscar
Un signo de interrogación seguido de una serie de pares clave-valor que representan parámetros y sus valores, proporcionados 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 |
La 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
Hace referencia 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=tabbyymood=bonkers.
Dominio de segundo nivel
Es el dominio que se encuentra antes de un dominio de nivel superior.
En la URL
https://www.example.com, el dominio de segundo nivel esexample.com, un subdominio del dominio de nivel superiorcom.En el caso de
https://example.org.au, el dominio de nivel superior esau, el dominio de segundo nivel esorgy el dominio de tercer nivel esexample. En este ejemplo,org.aues un subdominio deauyexample.org.aues un subdominio deorg.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 está definido en el estándar de URL ni en la API de URL de JavaScript.
En este contexto, sucede lo siguiente:
- En el caso de una URL HTTP o HTTPS con un eTLD de una sola parte, como
https://example.com, el sitio consta descheme, el eTLD y la etiqueta anterior. Por ejemplo, para la URLhttps://www.example.com/cat, el sitio eshttps://example.com. (En esta URL, el eTLD es el mismo que el dominio de nivel superior). - En el caso de los eTLDs de varias partes, como
co.uk,github.ioosa.edu.au, el "sitio" consta delscheme, el eTLD y la etiqueta anterior. Por ejemplo, para la URLhttps://cat.example.co.uk/tabby, el sitio eshttps://example.co.uk, y parahttps://www.education.sa.gov.au, el sitio eshttps://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 origin, site no incluye port.
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, son las partes que se encuentran antes del dominio de nivel superior, cada una separada por un punto.
www.example.comes un subdominio deexample.com.support.api.example.orges un subdominio deapi.example.org, que es un subdominio deexample.org.
En el caso de los eTLD 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 se encuentran antes de eso.
- Por ejemplo,
cat.example.co.ukes un subdominio deexample.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, desplazar 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 la primera aparición del texto "fragmento" en esta página, usa la URL https://web.dev/articles/url-parts#:~:text=fragment.
Obtén más información sobre los fragmentos de texto.
Dominio de nivel superior (TLD)
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.
- En el caso de
https://example.org, el dominio de nivel superior de la URL esorg. - En el caso de
https://example.org.au, el dominio de nivel superior de la URL esauyorges un dominio de segundo nivel (aunqueorgtambién es un dominio de nivel superior).org.aues un eTLD de dos partes.
La Lista de sufijos públicos de eTLDs incluye dominios con una, dos o más partes, por lo que un TLD también puede ser un eTLD. Por ejemplo:
- En el caso de
https://example.com, el eTLD de la URL escom, 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 esta opción quedó obsoleta por motivos de seguridad y se ignorará 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 los símbolos : o @, deben codificarse como URL en %3A y %40, respectivamente.
Más información
- WHATWG: URL Living Standard (Estándar dinámico de URL de WHATWG)
- WHATWG: HTML Living Standard (WHATWG: Estándar de HTML activo)
- API de URL
- Información sobre los conceptos de "mismo sitio" y "mismo origen"
- RFC: Localizadores uniformes de recursos (URL)
- RFC: URIs, URLs y URNs
- Base de datos de la zona raíz (directorio de TLDs)
- Lista de sufijos públicos (directorio de eTLDs: "Un sufijo público es un conjunto de nombres de DNS o comodines concatenados con puntos. Representa la parte de un nombre de dominio que no está bajo el control del registrante individual").
- Glosario de la ICANN
- ¿Qué es un nombre de dominio completamente calificado?
- ¿De cuántas maneras puedes dividir una URL y nombrar las partes?
- Glosario de MDN Web Docs
- ¿Qué es una URL?
- Historial de la URL