Referencia HTTP

Campo de encabezado HTTP

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, la URI o IRI ) desde la que se ha solicitado el recurso. Al comprobar 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 estuvo el usuario (aquella en la que hizo clic en el enlace).

Los sitios web y 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 implica 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 ido reduciendo de forma constante la cantidad de información enviada en Referer. A 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 excepto el nombre de dominio.

Etimología

El error ortográfico de referrer fue introducido en la propuesta original del científico 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 en el momento (mayo de 1996) de su incorporación en el documento de estándares Request for Comments RFC 1945 [9] (que "refleja el uso común del protocolo denominado "HTTP/1.0 " ' en ese momento); el coautor del documento Roy Fielding señaló en marzo de 1995 que "ninguno de los dos (referer o referrer) 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 "referrer" se utiliza en algunas especificaciones web como el Referrer-Policyencabezado HTTP o el Document Object Model . [3]

Detalles

Al visitar una página web, el referente o página de referencia es la URL de la página web anterior desde la que se siguió un enlace.

En términos más generales, un referente es la URL de un elemento anterior que generó esta solicitud. Por ejemplo, el referente de una imagen es generalmente la página HTML en la que se mostrará. El campo referente es una parte opcional de la solicitud HTTP que envía el navegador web al servidor web. [11]

Muchos sitios web registran los referentes 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 del referente puede violar la privacidad , algunos navegadores web permiten al usuario deshabilitar el envío de información del referente. [12] Algunos software de proxy y firewall también filtrarán la información del referente, 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 referente correcta, en un intento de evitar enlaces profundos o uso no autorizado de imágenes ( robo de ancho de banda ). Algunos software de proxy tienen la capacidad de dar la dirección de nivel superior del sitio web de destino como referente, lo que reduce estos problemas pero aún puede, en algunos casos, divulgar la última página web visitada por el usuario.

Muchos blogs publican información de referencias para enlazar a personas que enlazan a ellos y, de ese modo, ampliar la conversación. Esto ha provocado, a su vez, el aumento del spam de referencias : el envío de información de referencias falsa para popularizar el sitio web del spammer.

Es posible acceder a la información del referente en el lado del cliente utilizando 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 referente no siempre incluye palabras clave de búsqueda, como cuando se utiliza la Búsqueda de Google con HTTPS. [14]

Ocultación del referente

La mayoría de los servidores web mantienen registros de todo el tráfico y registran el URL de referencia HTTP enviado por el navegador web para cada solicitud. Esto plantea una serie de problemas de privacidad y, como resultado, se han desarrollado varios sistemas para evitar que los servidores web reciban 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 basados ​​en web los reemplazan con una URL falsa, generalmente la propia. Esto plantea el problema del spam de referencia. 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 brindan 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 mediante el campo "Actualizar". Esto no incluye algunas versiones de Opera y muchos navegadores web móviles. Sin embargo, el Consorcio World Wide Web (W3C) desaconseja este método de redirección . [15]

Si se accede a un sitio web desde una conexión segura HTTP (HTTPS) y un enlace apunta a cualquier lugar excepto a otra ubicación segura, entonces no se envía el campo de referencia. [11]

El estándar HTML5 agregó soporte para el atributo/valor rel="noreferrer", que indica al agente de usuario que no envíe un referente. [16]

Otro método para ocultar el referente 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 actualización meta a la URL original. Cuando se redirige al usuario desde la data:página, el referente original se oculta.

La versión 1.1 del estándar de Política de Seguridad de Contenido introdujo una nueva directiva de referencia que permite un mayor control sobre el comportamiento del navegador en relación con el encabezado de referencia. En concreto, permite al webmaster indicar al navegador que no bloquee la referencia en absoluto, que la revele solo cuando se mueva con el mismo origen, etc. [17]

Referencias

  1. ^ Gourley, David; Totty, Brian; Sayer, Marjorie; Aggarwal, Anshu; Reddy, Sailu (27 de septiembre de 2002). HTTP:La guía definitiva. "O'Reilly Media, Inc." ISBN 9781565925090.
  2. ^ Kyrnin, Jennifer (10 de abril de 2012). "Referente - ¿Qué es un referente? ¿Cómo funcionan los referentes HTTP?". About.com . Archivado desde el original el 29 de mayo de 2013. Consultado el 20 de marzo de 2013 .
  3. ^ ab "¿Tiene su sitio web una fuga de información?". Blog de la ICO . 2015-09-16. Archivado desde el original el 2018-05-24 . Consultado el 2018-08-16 .
  4. ^ "Política de referencia: el valor predeterminado es strict-origin-when-cross-origin - Estado de la plataforma Chrome" www.chromestatus.com . Consultado el 23 de marzo de 2021 .
  5. ^ Lee, Dimi; Kerschbaumer, Christoph (22 de marzo de 2021). «Firefox 87 recorta los referentes HTTP de forma predeterminada para proteger la privacidad del usuario». Blog de seguridad de Mozilla . Consultado el 23 de marzo de 2021 .
  6. ^ Wilander, John (10 de diciembre de 2019). "Prevención del seguimiento Prevención del seguimiento". Blog de WebKit .
  7. ^ Hallam-Baker, Phillip (21 de septiembre de 2000). "Re: ¿Es Al Gore el padre de Internet?". Grupo de noticias : alt.folklore.computers . Consultado el 20 de marzo de 2013 .
  8. ^ Hallam-Baker, Phillip. "Re: Referer: (sic)". Archivos de listas de correo públicas del W3C . Archivado desde el original el 19 de febrero de 2024. Consultado el 19 de febrero de 2024 .
  9. ^ Berners-Lee, T. ; Fielding, R. ; Frystyk, H. (mayo de 1996). Protocolo de transferencia de hipertexto -- HTTP/1.0. IETF . doi : 10.17487/RFC1945 . RFC 1945.
  10. ^ Fielding, Roy (9 de marzo de 1995). "Re: referer: (sic)". ietf-http-wg-old (Lista de correo) . Consultado el 20 de marzo de 2013 .
  11. ^ ab Fielding, R.; Reschke, J. (junio de 2014). Fielding, R.; Reschke, J. (eds.). Protocolo de transferencia de hipertexto (HTTP/1.1): semántica y contenido: referente (RFC 7231 § 5.5.2). IETF. sec. 5.5.2. doi : 10.17487/RFC7231 . S2CID  14399078. RFC 7231. Consultado el 26 de julio de 2014 .
  12. ^ ab "Network.http.sendRefererHeader". MozillaZine . 10 de junio de 2007 . Consultado el 27 de mayo de 2015 .
  13. ^ "Propiedad de referencia del documento HTML DOM". W3Schools . Consultado el 20 de marzo de 2013 .
  14. ^ Gundersen, Bret (19 de octubre de 2011). "El impacto de la búsqueda cifrada de Google". Blog de marketing digital de Adobe . Consultado el 17 de marzo de 2021 .
  15. ^ "Técnicas HTML para las Pautas de Accesibilidad al Contenido Web 1.0: El elemento META". W3C . 2000-11-06 . Consultado el 20 de marzo de 2013 .
  16. ^ "4.12 Enlaces — HTML Living Standard: 4.12.5.8 Tipo de enlace "noreferrer"". WHATWG . 2016-02-19 . Consultado el 2016-02-19 .
  17. ^ "Política de seguridad de contenido de nivel 2". W3. 2014. Consultado el 8 de diciembre de 2014 .
  • RFC 1945: Protocolo de transferencia de hipertexto: HTTP/1.0
  • RFC 7231: Protocolo de transferencia de hipertexto (HTTP/1.1): semántica y contenido
  • RFC 3987: Identificadores de recursos internacionalizados (IRI)
  • Política de referencias - Borrador del editor del W3C
Obtenido de "https://es.wikipedia.org/w/index.php?title=Referencia_HTTP&oldid=1244790050"