Un localizador uniforme de recursos ( URL ), conocido coloquialmente como dirección en la Web , [1] es una referencia a un recurso 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), [2] [3] aunque mucha gente usa los dos términos indistintamente. [4] [a] Las URL se utilizan con mayor frecuencia para hacer referencia a páginas web ( HTTP / HTTPS ), pero también se utilizan para 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 el formato 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
).
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 URI del Internet Engineering Task Force (IETF), [7] como resultado de la colaboración iniciada en el Sesión de IETF Living Documents sobre pájaros del mismo plumaje en 1992. [7] [8]
El formato combina el sistema preexistente de nombres de dominio (creado en 1985) con la sintaxis de ruta de archivo , donde se utilizan barras para separar directorios y nombres de archivos . Ya existían convenciones en las que los nombres de los servidores podían tener como prefijo las rutas completas de los archivos, precedidos por una doble barra ( //
). [9]
Más tarde, Berners-Lee lamentó el uso de puntos para separar las partes del nombre de dominio dentro de los URI , deseando haber usado barras diagonales en todas partes, [9] y también dijo que, dados los dos puntos que siguen al primer componente de un URI, los dos las barras diagonales antes del nombre de dominio eran innecesarias. [10]
Los primeros colaboradores de WorldWideWeb , incluido Berners-Lee, propusieron originalmente el uso de UDI: identificadores universales de documentos. Un primer borrador (1993) de la Especificación HTML [11] hacía referencia 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). [12] En su libro Weaving the Web , Berners-Lee enfatiza su preferencia por la inclusión original de "universal" en la expansión en lugar de la palabra "uniforme", a la que luego se cambió, y da un breve relato de la argumento que condujo al cambio.
Cada URL HTTP se ajusta a la sintaxis de un URI genérico. La sintaxis genérica de URI consta de cinco componentes organizados jerárquicamente en orden de importancia decreciente de izquierda a derecha: [13] : §3
URI = esquema ":" ["//" autoridad] ruta ["?" consulta] [fragmento "#"]
Un componente no está definido si tiene un delimitador asociado y el delimitador no aparece en el URI; los componentes del esquema y la ruta siempre están definidos. [13] : §5.2.1 Un componente está vacío si no tiene caracteres; el componente del esquema siempre no está vacío. [13] : §3
El componente de autoridad consta de subcomponentes :
autoridad = [información de usuario "@"] host [":" puerto]
Esto se representa en un diagrama de sintaxis como:
La URI comprende:
:
), que consta de una secuencia de caracteres que comienza con una letra y seguida de 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.Ejemplosde esquemas populares incluyenhttp
,https
,ftp
,mailto
,file
ydata
.irc
Los esquemas URI deben registrarse ante laAutoridad de Números Asignados de Internet (IANA), aunque en la práctica se utilizan esquemas no registrados.[b]//
), que comprende:@
), que puede consistir en unnombre de usuarioy unacontraseñaprecedida por dos puntos (:
). El uso del formatousername:password
en el subcomponente userinfo 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 encuentren 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 indica que no hay contraseña).[]
).[13] : §3.2.2 [c]:
), que consta de dígitos decimales./
). 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 ruta. Un componente de ruta puede parecerse o asignarse exactamente a unaruta del sistema de archivos, pero no siempre implica una relación con una. Si se define un componente de autoridad, entonces el componente de ruta debe estar vacío o comenzar con una barra diagonal (/
). Si un componente de autoridad no está definido, entonces la ruta no puede comenzar con un segmento vacío, es decir, con dos barras (//
), ya que los siguientes caracteres se interpretarían como un componente de autoridad.[16] : §3.3 "http://www.example.com/questions/3456/my-document"
"/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 ejecutable o programa denominado "/questions"
para seleccionar el documento solicitado.?
), que consta de unacadena de consultade datos no jerárquicos. Su sintaxis no está bien definida, pero por convención suele ser una secuencia depares atributo-valorseparados por undelimitador.#
). El fragmento contiene unidentificador de fragmentoque proporciona dirección a un recurso secundario, como el encabezado de una sección de un artículo identificado por el resto del URI. Cuando el recurso principal es unHTML, el fragmento suele ser unid
atributode un elemento específico y los navegadores web desplazarán este elemento para mostrarlo.Un navegador web normalmente eliminará la referencia a una URL realizando una solicitud HTTP al host especificado, de forma predeterminada en el puerto número 80. Las URL que utilizan el https
esquema requieren que las solicitudes y respuestas se realicen a través de una conexión segura al sitio web .
Los usuarios de Internet están distribuidos por todo el mundo utilizando una amplia variedad de idiomas y alfabetos, y esperan poder crear 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 diferentes alfabetos son el nombre de dominio y la ruta. [18] [19]
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/
. Indica xn--
que el carácter no era originalmente ASCII . [20]
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 básico de la URL se escapa como hexadecimal usando 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. [18]
Los enlaces relativos al protocolo (PRL), también conocidos como URL relativos al protocolo (PRURL), son URL que no tienen ningún protocolo especificado. Por ejemplo, //example.com
utilizará el protocolo de la página actual, normalmente HTTP o HTTPS. [21] [22]
http://www.example.com
es una URL, mientras que www.example.com
no lo es. [6].0
eliminar partes de la notación decimal con puntos o utilizar direcciones IP enteras sin formato. [15]