Referer (Cabecera HTTP)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

HTTP referer (inicialmente un error ortográfico del término referrer) es una cabecera HTTP que identifica la dirección de la página web (es decir, la URI o IRI) que creó el vínculo con el recurso que está siendo solicitado. A través del chequeo del campo referer, la nueva página web puede determinar dónde se originó la solicitud.

En la mayoría de los casos esto significa que cuando un usuario hace clic a un hipervínculo en un navegador web, el navegador envía una solicitud al servidor que hospeda la página web destino y dicha solicitud incluye el campo referer, que indica la última página que el usuario visitó (aquella donde el usuario hizo clic al vínculo).

El registro del campo referer es utilizado con propósitos estadísticos y promocionales por los sitios web y servidores web, pues les permite identificar desde qué localización están siendo visitados.[1]

Origen del término referer[editar]

El error de ortografía referer tiene su origen en la propuesta del científico de la computación Philip Hallam-Baker de incorporar este campo en la especificación del HTTP.[2] El error ortográfico fue acuñado para el momento de su incorporación en el documento de los estándares Request for Comments (RFC 1945); el coautor del documento Roy Fielding ha señalado que ninguno de los términos "referrer" o el error ortográfico "referer" fueron reconocidos por el corrector ortográfico estándar de Unix de ese período.[3] "Referer" se ha convertido, desde entonces, en un término ampliamente utilizado en la industria cuando se habla de apuntadores HTTP; el uso del error ortográfico no es universal dado que "referrer" es utilizado en algunas especificaciones web como el Document Object Model.

Detalles[editar]

Cuando una página web es visitada, la página que referencia es la URL de la página previa desde la cual se siguió un vínculo.

De forma más general, un campo referer es la URL de un objeto previo que conduce a la solicitud. El campo referer para una imagen, por ejemplo, es usualmente la página HTML donde la misma se muestra. El campo referer es una parte opcional de la solicitud HTTP enviada por el navegador web hacia el servidor web.[4]

Muchos sitios web registran el campo referer como parte de un intento por localizar a sus usuarios. La mayoría del software existente para el análisis de registros web puede procesar esta información. Debido a que la información contenida en el referer puede violar la privacidad, algunos navegadores web permiten al usuario deshabilitar el envío de información de referencia.[5] Algunos proxy y software de cortafuegos también excluyen con filtros la información del campo referer, para evitar el escape de la localización de algunos sitios web privados. Esto puede, en su momento, ocasionar problemas: algunos servidores web bloquean parte de sus sitios web a exploradores web que no envían una correcta información referer, en un intento por prevenir enlaces profundos o el uso de imágenes sin autorización (hot-linking). Algunos software de proxy están habilitados para entregar como referer la dirección de mayor nivel del sitio que está siendo apuntado, lo que frecuentemente previene estos problemas sin necesidad de divulgar el último sitio web visitado por el usuario.

Recientemente muchos blogs han comenzado a publicar información de referencia con el objetivo de crear un vínculo inverso hacia las personas que tienen vínculos a ellos, y con ello ampliar la conversación. Esto ha conducido, en determinados momentos, al aumento del spam de registro: el envío de falsa información de referencia con el objetivo de popularizar el sitio web que actúa como remitente.

Muchos sitios pornográficos que incluyen pagos utilizan la información del campo referer para proteger sus sitios web. Solamente es otorgado acceso a los exploradores web provenientes de un pequeño grupo de páginas aprobadas (login); esto facilita el compartir materiales en grupos de cooperación de sitios de pago. El engaño por referer es en ocasiones utilizado para obtener acceso libre a estos sitios de pago.[cita requerida]

Es posible acceder a la información del campo referer en el lado del cliente haciendo uso del document.referrer de JavaScript.[6] Esto puede ser utilizado, por ejemplo, para individualizar una página web basada en una consulta de usuario a un motor de búsquedas. Sin embargo, el campo referer no siempre incluye consultas, como al hacer uso del Buscador de Google con https.[7]

Ocultar campo referer[editar]

La mayoría de los servidores web mantienen un registro de todo el tráfico, y guardan el campo referer de HTTP enviado por el navegador web para cada solicitud. Esto desata preocupaciones en cuanto a la privacidad, y como resultado, se han desarrollado un cierto número de sistemas para prevenir que los servidores web envíen la URL real. El funcionamiento de estos sistemas consiste en dejar en blanco el campo referer o reemplazarlo con datos inválidos. Generalmente, los paquetes de Internet security dejan en blanco el campo referer, mientras que los servidores web lo reemplazan por una URL falsa, usualmente la suya. Esto, por supuesto, acrecienta 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 para la web cargan sitios web dentro de su propio marco, causando que el navegador web envíe una URL de referencia con la dirección de su sitio web. Algunos navegadores web otorgan a sus usuarios la opción de eliminar el campo referer del encabezado de su solicitud.[5]

Los navegadores web, en su mayoría, no envían el campo referer cuando se les solicita una redirección usando el campo "Refrescar". Esto no incluye algunas versiones del Opera y numerosos navegadores web para dispositivos móviles. Sin embargo, este método de redirección es rechazado por la World Wide Web Consortium (W3C).[8]

Si un sitio web es accedido a través de una conexión segura (HTTPS) y algún vínculo apunta a una localización no segura, entonces la información del campo referer no se envía.[9]

El estándar HTML5 soportará el atributo/valor rel = "noreferrer" con el objetivo de indicar al agente para el usuario que el campo referer no debe ser enviado.[10]

Referencias[editar]

  1. Kyrnin, Jennifer (10-04-2012). «Referrer - What is a Referrer - How do HTTP Referrers Work?». About.com. Consultado el 20-03-2013.
  2. Hallam-Baker, Philip (21-09-2000). «Re: Is Al Gore The Father of the Internet?». Consultado el 20-03-2013.
  3. Fielding, Roy (09-03-1995). «Re: Referer: (sic)». Consultado el 20-03-2013.
  4. «Hypertext Transfer Protocol -- HTTP/1.1 (RFC 2616 § 14.36)». IETF (June 1999). Consultado el 20-03-2013. «The Referer[sic] request-header field allows the client to specify […] the address (URI) of the resource from which the Request-URI was obtained […]».
  5. a b «Network.http.sendRefererHeader». MozillaZine (10-06-2007). Consultado el 20-03-2013.
  6. «HTML DOM Document referrer Property». w3schools.com. Consultado el 20-03-2013.
  7. Gundersen, Bret (19-10-2011). «The Impact of Google Encrypted Search». Adobe Digital Marketing Blog. Consultado el 20-03-2013.
  8. «HTML Techniques for Web Content Accessibility Guidelines 1.0: The META element». W3C (06-11-2000). Consultado el 20-03-2013.
  9. «Hypertext Transfer Protocol -- HTTP/1.1: Encoding Sensitive Information in URI's (RFC 2616 § 15.1.3)». IETF (June 1999). Consultado el 20-03-2013. «Clients SHOULD NOT include a Referer[sic] header field in a (non-secure) HTTP request if the referring page was transferred with a secure protocol».
  10. «4.12 Links — HTML Living Standard: 4.12.5.8 Link type "noreferrer"». WHATWG (20-03-2013). Consultado el 20-03-2013.

Enlaces externos[editar]

Ejemplo de utilización del referrer, en: http://www.swisstopo.admin.ch/internet/swisstopo/en/home/products/services/web_services/webaccess.html