URL
Un localizador uniforme de recursos o URL (por sus siglas en inglés Uniform Resource Locator), coloquialmente denominado dirección web, es una referencia a un recurso web que especifica su ubicación en una red informática y un mecanismo para recuperarlo. Una URL es un tipo específico de identificador uniforme de recursos (URI), aunque muchas personas usan los dos términos indistintamente. Las direcciones URL aparecen más comúnmente para hacer referencia a páginas web (http), pero también se utilizan para la transferencia de archivos (ftp), correo electrónico (mailto), acceso a bases de datos (JDBC) y muchas otras aplicaciones.
La mayoría de los navegadores web muestran la URL de una página web encima de la página en una barra de direcciones. Una URL típica podría tener la forma http://www.example.com/index.html
, que indica un protocolo (http
), un nombre de host (www.example.com
) y un nombre de archivo (index.html
).
Historia
Los localizadores uniformes de recursos fueron definidos en RFC 1738 en 1994 por Tim Berners-Lee, el inventor de la World Wide Web, y el grupo de trabajo de URI del Grupo de trabajo de ingeniería de Internet (IETF), como resultado de la colaboración iniciada en IETF Living Documents. Sesión Birds of a Feather en 1992.
El formato combina el sistema preexistente de nombres de dominio (creado en 1985) con la sintaxis de ruta de archivo, donde se usan barras para separar los nombres de directorio y de archivo. Ya existían convenciones en las que los nombres de los servidores podían tener un prefijo para completar las rutas de los archivos, precedidos por una doble barra inclinada (//
).
Más tarde, Berners-Lee lamentó el uso de puntos para separar las partes del nombre de dominio dentro de los URI, y deseó haber usado barras inclinadas en todas partes, y también dijo que, dados los dos puntos que siguen al primer componente de un URI, las dos barras inclinadas antes del nombre de dominio eran innecesarios.
Un borrador anterior (1993) de la especificación HTML se refería a los localizadores de recursos "universales". Esto se eliminó en algún momento entre junio de 1994 (RFC 1630) y octubre de 1994 (draft-ietf-uri-url-08.txt).
Sintaxis
Cada URL HTTP se ajusta a la sintaxis de un URI genérico. La sintaxis genérica de URI consta de una secuencia jerárquica de cinco componentes:
URI = esquema ":" ["//" autoridad] ruta ["?" consulta] [fragmento "#"]
donde el componente de autoridad se divide en tres subcomponentes:
autoridad = [información de usuario "@"] host [":" puerto]
Esto se representa en un diagrama de sintaxis como:
La URI comprende:
- un no vacíocomponente de esquema seguido de dos puntos (
:
), que consta de una secuencia de caracteres que comienza con una letra y sigue cualquier combinación de letras, dígitos, más (+
), punto (.
) o guión (-
). Aunque los esquemas no distinguen entre mayúsculas y minúsculas, la forma canónica es minúscula y los documentos que especifican esquemas deben hacerlo con letras minúsculas. Los ejemplos de esquemas popularesincluyenhttp
,https
,ftp
,mailto
,file
y. Los esquemas de URI deben registrarse con la Autoridad de Números Asignados de Internet (IANA), aunque en la práctica se utilizan esquemas no registrados.data
irc
- un opcionalcomponente de autoridad
//
precedido por dos barras (), que comprende:- un opcionalsubcomponente de información de usuario que puede constar de un nombre de usuario y una contraseña opcional precedidos por dos puntos (
:
), seguidos de un símbolo de arroba (@
). El uso del formatousername:password
en el subcomponente de información de usuario está obsoleto por razones de seguridad. Las aplicaciones no deben representar como texto claro ningún dato después de los primeros dos puntos (:
) que se encuentran dentro de un subcomponente de información de usuario, a menos que los datos después de los dos puntos sean una cadena vacía (que no indica contraseña). - Asubcomponente de host, que consta de un nombre registrado (que incluye, entre otros, un nombre de host) o una dirección IP. Las direcciones IPv4 deben estar en notación decimal con puntos y las direcciones IPv6 deben estar entre corchetes (
[]
). - un opcionalsubcomponente de puerto
:
precedido por dos puntos ().
- un opcionalsubcomponente de información de usuario que puede constar de un nombre de usuario y una contraseña opcional precedidos por dos puntos (
- Acomponente de ruta
/
, que consta de una secuencia de segmentos de ruta separados por una barra inclinada (). Siempre se define una ruta para un URI, aunque la ruta definida puede estar vacía (longitud cero). Un segmento también puede estar vacío, lo que da como resultado dos barras diagonales consecutivas (//
) en el componente de la ruta. Un componente de ruta puede parecerse o asignarse exactamente a una ruta de sistema de archivos, pero no siempre implica una relación con uno. Si está presente un componente de autoridad, entonces el componente de ruta debe estar vacío o comenzar con una barra inclinada (/
). Si falta un componente de autoridad, la ruta no puede comenzar con un segmento vacío, es decir, con dos barras inclinadas (//
), ya que los siguientes caracteres se interpretarían como un componente de autoridad.
Por convención, en los URI http y https, la última parte de una ruta se denominapathinfo y es opcional. Está compuesto por cero o más segmentos de ruta que no se refieren a un nombre de recurso físico existente (p. ej., un archivo, un programa de módulo interno o un programa ejecutable) sino a una parte lógica (p. ej., un comando o una parte calificadora) que tiene que pasar por separado a la primera parte de la ruta que identifica un módulo o programa ejecutable administrado por un servidor web; esto se usa a menudo para seleccionar contenido dinámico (un documento, etc.) o para personalizarlo según lo solicitado (ver también: CGI y PATH_INFO, etc.).Ejemplo:URL:"http://www.example.com/questions/3456/my-document"
donde: "/questions"
es la primera parte de la ruta (un módulo o programa ejecutable) y "/3456/my-document"
es la segunda parte de la ruta denominada pathinfo, que se pasa al módulo o programa ejecutable denominado "/questions"
para seleccionar el documento solicitado.Un URI http o https que contiene una parte de información de ruta sin una parte de consulta también puede denominarse 'URL limpia' cuya última parte puede ser un 'slug'.
delimitador de consulta | Ejemplo |
---|---|
Y comercial (& ) | key1=value1&key2=value2 |
Punto y coma (; ) | key1=value1;key2=value2 |
- un opcionalcomponente de consulta precedido por un signo de interrogación (
?
), que contiene una cadena de consulta de datos no jerárquicos. Su sintaxis no está bien definida, pero por convención suele ser una secuencia de pares atributo-valor separados por un delimitador. - un opcionalcomponente de fragmento precedido por un hash (
#
). El fragmento contiene un identificador de fragmento que proporciona dirección a un recurso secundario, como un encabezado de sección en un artículo identificado por el resto del URI. Cuando el recurso principal es un documento HTML, el fragmento suele ser unid
atributo de un elemento específico y los navegadores web desplazarán este elemento para verlo.
Un navegador web generalmente eliminará la referencia a una URL al realizar una solicitud HTTP al host especificado, de forma predeterminada en el puerto número 80. Las URL que usan el https
esquema requieren que las solicitudes y respuestas se realicen a través de una conexión segura al sitio web.
URL internacionalizada
Los usuarios de Internet están distribuidos por todo el mundo utilizando una amplia variedad de idiomas y alfabetos y esperan poder crear direcciones URL en sus propios alfabetos locales. Un identificador de recursos internacionalizado (IRI) es una forma de URL que incluye caracteres Unicode. Todos los navegadores modernos admiten IRI. Las partes de la URL que requieren un tratamiento especial para los diferentes alfabetos son el nombre de dominio y la ruta.
El nombre de dominio en el IRI se conoce como Nombre de dominio internacionalizado (IDN). El software web e Internet convierte automáticamente el nombre de dominio en punycode utilizable por el Sistema de nombres de dominio; por ejemplo, la URL china http://例子.卷筒纸
se convierte en http://xn--fsqu00a.xn--3lr804guic/
. El xn--
indica que el carácter no era originalmente ASCII.
El usuario también puede especificar el nombre de la ruta URL en el sistema de escritura local. Si aún no está codificado, se convierte a UTF-8, y cualquier carácter que no forme parte del conjunto de caracteres de la URL básica se escapa como hexadecimal mediante la codificación porcentual; por ejemplo, la URL japonesa http://example.com/引き割り.html
se convierte en http://example.com/%E5%BC%95%E3%81%8D%E5%89%B2%E3%82%8A.html
. La computadora de destino decodifica la dirección y muestra la página.
URL relativas al protocolo
Los enlaces relativos al protocolo (PRL), también conocidos como direcciones URL relativas al protocolo (PRURL), son direcciones URL que no tienen ningún protocolo especificado. Por ejemplo, //example.com
utilizará el protocolo de la página actual, normalmente HTTP o HTTPS.
Contenido relacionado
Red de área local (LAN)
Reactor de agua a presión
Seguridad de información