URLs absolutas, URL relativas, y …?

Estoy escribiendo algunos documentos y tengo un pequeño problema de vocabulario:

  1. http://www.example.com/en/public/img/logo.gif se llama url “absoluta”, ¿verdad?
  2. ../../public/img/logo.gif se llama url “relativo”, ¿verdad?
  3. /en/public/img/logo.gif ¿cómo se llama esto: /en/public/img/logo.gif ?

¿También se considera una “URL absoluta”, aunque sin el protocolo y las partes de dominio?

¿O se considera una URL relativa, pero relativa a la raíz del dominio?

Busqué en Google un poco y algunas personas clasifican esto como absoluto, y otros como relativo.

¿Cómo debería llamarlo? ¿Una “url semi-absoluta”? ¿O “semi-relativo”? Hay otra palabra?

Aquí están los componentes de URL:

 http://www.example.com/en/public/img/logo.gif \__/ \_____________/\_____________________/ #1 #2 #3 
  1. esquema / protocolo
  2. anfitrión
  3. camino

Una URL se denomina URL absoluta si comienza con el esquema y la parte específica del esquema (aquí // después de http: . Cualquier otra cosa es una URL relativa .

Una ruta de URL se llama una ruta de URL absoluta si comienza con un / . Cualquier otra ruta de URL se denomina ruta de URL relativa .

Así:

  • http://www.example.com/en/public/img/logo.gif es una URL absoluta ,
  • ../../public/img/logo.gif es una URL relativa con una ruta URL relativa y
  • /en/public/img/logo.gif es una URL relativa con una ruta de URL absoluta .

Nota: La definición actual de URI ( RFC 3986 ) es diferente de la antigua definición de URL ( RFC 1738 y RFC 1808 ).

Los tres ejemplos con términos URI:

  • http://www.example.com/en/public/img/logo.gif es un URI ,
  • ../../public/img/logo.gif es una referencia relativa con solo una ruta relativa y
  • /en/public/img/logo.gif es una referencia relativa con solo una ruta absoluta .

A veces se denomina url virtual, por ejemplo en SSI:

  

De la documentación de Microsoft sobre URL absolutas y relativas

Una URL especifica la ubicación de un objective almacenado en una computadora local o en red. El objective puede ser un archivo, directorio, página HTML, imagen, progtwig, etc.

Una URL absoluta contiene toda la información necesaria para ubicar un recurso.

Una URL relativa localiza un recurso usando una URL absoluta como punto de partida. En efecto, la “URL completa” del objective se especifica concatenando las URL absolutas y relativas.

Una URL absoluta usa el siguiente formato: esquema: // servidor / ruta / recurso

Una URL relativa normalmente consta únicamente de la ruta y, opcionalmente, del recurso , pero no de ningún esquema o servidor . Las siguientes tablas definen las partes individuales del formato de URL completo.

  • esquema : especifica cómo se debe acceder al recurso .

  • servidor : especifica el nombre de la computadora donde se encuentra el recurso .

  • ruta : especifica la secuencia de directorios que conduce al objective. Si se omite el recurso , el objective es el último directorio en la ruta .

  • recurso : si se incluye, el objective es el recurso , y normalmente es el nombre de un archivo. Puede ser un archivo simple , que contiene una única secuencia binaria de bytes, o un documento estructurado , que contiene uno o más almacenamientos y flujos binarios de bytes.

Tenga en cuenta cuántos segmentos de la URL se pueden omitir, por lo que son relativos (nota: todos ellos, casi). Estas son todas las URL válidas:

  • http://example.com/bar?baz
  • ?qoo=qalue
  • /bar2
  • dat/sly
  • //auth.example.com (la mayoría de la gente está sorprendida por esta! Utilizará http o https, dependiendo del recurso actual)
  • #anchor

Lo he visto llamar una URL relativa de raíz .

Facebook llamaría a /en/public/img/logo.gif una URL relativa al protocolo (ver su API por lotes).