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 URLs, 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.
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 detabby
.
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
oorg
(es decir, un eTLD que corresponde a un TLD), el dominio y el dominio de segundo nivel que lo preceden: por ejemplo,example.com
oexample.org
. - Para una URL con un TLD 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.au
ygithub.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
oexample.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.
Buscar
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
ymood=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 esexample.com
, un subdominio del dominio de nivel superiorcom
.Para
https://example.org.au
, el dominio de nivel superior esau
, el dominio de segundo nivel esorg
y el dominio de tercer nivel esexample
. En este ejemplo,org.au
es un subdominio deau
yexample.org.au
es 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 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 descheme
, el eTLD y la etiqueta que lo precede. Por ejemplo, para la URLhttps://www.example.com/cat
, el sitio eshttps://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
osa.edu.au
, el "sitio" consta descheme
, 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
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 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 deexample.com
.support.api.example.org
es un subdominio deapi.example.org
, que es un subdominio deexample.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 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, 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 esorg
. - En el caso de
https://example.org.au
, el dominio de nivel superior de la URL esau
yorg
es un dominio de segundo nivel (aunqueorg
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 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 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
- WHATWG: Estándar dinámico de URLs
- WHATWG: HTML Living Standard
- API de URL
- Información sobre "mismo sitio" y "mismo origen"
- RFC: Localizadores de recursos uniformes (URL)
- RFC: URIs, URLs y URNs
- Base de datos de zona raíz (directorio de TLD)
- 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