En HTTP , " Referer " (un error ortográfico de " Referrer " [1] ) es un campo de encabezado HTTP opcional que identifica la dirección de la página web (es decir, el URI o IRI ), desde la cual se ha solicitado el recurso. Al verificar el referente, el servidor que proporciona la nueva página web puede ver dónde se originó la solicitud.
En la situación más común, esto significa que cuando un usuario hace clic en un hipervínculo en un navegador web , lo que hace que el navegador envíe una solicitud al servidor que contiene la página web de destino, la solicitud puede incluir el campo Referer, que indica la última página en la que se encuentra. estaba el usuario (en el que hizo clic en el enlace).
Los sitios web y los servidores web registran el contenido del campo Referer recibido para identificar la página web desde la que el usuario siguió un enlace, con fines promocionales o estadísticos. [2] Esto supone una pérdida de privacidad para el usuario y puede introducir un riesgo de seguridad . [3] Para mitigar los riesgos de seguridad, los navegadores han estado reduciendo constantemente la cantidad de información enviada en Referer. A partir de marzo de 2021, de forma predeterminada, Chrome , [4] Edge basado en Chromium , Firefox , [5] Safari [6] envían de forma predeterminada solo el origen en las solicitudes de origen cruzado, eliminando todo menos el nombre de dominio.
El error ortográfico de referente fue introducido en la propuesta original del informático Phillip Hallam-Baker para incorporar el campo de encabezado "Referer" en la especificación HTTP . [7] [8] El error ortográfico quedó grabado en piedra cuando (mayo de 1996) se incorporó al documento de estándares de Solicitud de comentarios RFC 1945 [9] (que 'refleja el uso común del protocolo denominado "HTTP/1.0 " ' En ese tiempo); El coautor del documento, Roy Fielding, comentó en marzo de 1995 que "ninguno de los dos (referente o referente) es entendido por" el corrector ortográfico estándar de Unix de la época. [10] Desde entonces, "Referer" se ha convertido en una ortografía ampliamente utilizada en la industria cuando se habla de referentes HTTP; Sin embargo, el uso del error ortográfico no es universal, ya que la ortografía correcta "referente" se utiliza en algunas especificaciones web, como el Referrer-Policy
encabezado HTTP o el modelo de objetos de documento . [3]
Al visitar una página web, la página de referencia o de referencia es la URL de la página web anterior desde la que se siguió un enlace.
De manera más general, una referencia es la URL de un elemento anterior que generó esta solicitud. Por ejemplo, la referencia de una imagen es generalmente la página HTML en la que se mostrará. El campo de referencia es una parte opcional de la solicitud HTTP enviada por el navegador web al servidor web. [11]
Muchos sitios web registran referencias como parte de su intento de rastrear a sus usuarios . La mayoría del software de análisis de registros web puede procesar esta información. Debido a que la información de referencia puede violar la privacidad , algunos navegadores web permiten al usuario desactivar el envío de información de referencia. [12] Algunos programas de proxy y firewall también filtrarán la información de referencia para evitar filtrar la ubicación de sitios web no públicos. Esto, a su vez, puede causar problemas: algunos servidores web bloquean partes de su sitio web a los navegadores web que no envían la información de referencia correcta, en un intento de evitar enlaces profundos o el uso no autorizado de imágenes ( robo de ancho de banda ). Algunos software proxy tienen la capacidad de proporcionar la dirección de nivel superior del sitio web de destino como referencia, lo que reduce estos problemas pero, en algunos casos, aún puede divulgar la última página web visitada por el usuario.
Muchos blogs publican información de referencia para vincular a las personas que los vinculan y, por lo tanto, ampliar la conversación. Esto ha llevado, a su vez, al aumento del spam de referencia : el envío de información de referencia falsa para popularizar el sitio web del spammer.
Es posible acceder a la información de referencia en el lado del cliente usando document.referrer en JavaScript . [13] Esto se puede utilizar, por ejemplo, para individualizar una página web en función de la consulta del motor de búsqueda de un usuario. Sin embargo, el campo de referencia no siempre incluye palabras clave de búsqueda, como cuando se utiliza la Búsqueda de Google con HTTPS. [14]
La mayoría de los servidores web mantienen registros de todo el tráfico y registran la referencia HTTP enviada por el navegador web para cada solicitud. Esto plantea una serie de preocupaciones sobre la privacidad y, como resultado, se han desarrollado varios sistemas para evitar que los servidores web envíen la URL de referencia real. Estos sistemas funcionan borrando el campo de referencia o reemplazándolo con datos inexactos. Generalmente, las suites de seguridad de Internet borran los datos de referencia, mientras que los servidores web los reemplazan con una URL falsa, generalmente la suya propia. Esto plantea el problema del spam de referencias. Los detalles técnicos de ambos métodos son bastante consistentes: las aplicaciones de software actúan como un servidor proxy y manipulan la solicitud HTTP, mientras que los métodos basados en web cargan sitios web dentro de marcos, lo que hace que el navegador web envíe una URL de referencia de la dirección de su sitio web. Algunos navegadores web ofrecen a sus usuarios la opción de desactivar los campos de referencia en el encabezado de la solicitud. [12]
La mayoría de los navegadores web no envían el campo de referencia cuando se les indica que redireccionen utilizando el campo "Actualizar". Esto no incluye algunas versiones de Opera ni muchos navegadores web móviles. Sin embargo, el World Wide Web Consortium (W3C) desaconseja este método de redirección . [15]
Si se accede a un sitio web desde una conexión HTTP segura (HTTPS) y un enlace apunta a cualquier lugar excepto a otra ubicación segura, entonces el campo de referencia no se envía. [11]
El estándar HTML5 agregó soporte para el atributo/valor rel="noreferrer"
, que indica al agente de usuario que no envíe una referencia. [dieciséis]
Otro método para ocultar la referencia es convertir la URL del enlace original en una URL basada en un esquema de URI de datos que contenga una pequeña página HTML con una metaactualización de la URL original. Cuando el usuario es redirigido desde la data:
página, la referencia original está oculta.
La versión 1.1 del estándar de la Política de seguridad de contenido introdujo una nueva directiva de referencia que permite un mayor control sobre el comportamiento del navegador con respecto al encabezado de referencia. Específicamente, permite al webmaster indicarle al navegador que no bloquee la referencia en absoluto, que la revele solo cuando se mueva con el mismo origen, etc. [17]