La función de fuente de tráfico está disponible en los servicios de estadísticas de tráfico. La fuente de tráfico es un concepto para el nivel de visita. En otras palabras, cuando se establece la visita, la fuente de tráfico de la página de destino es la fuente de tráfico de la visita. Aunque hay muchos tipos de fuente de tráfico, desafortunadamente, en base a JS ahora, solo hay dos formas de obtener la fuente de tráfico: document.ReFerrer y Window.opener. Lo que es más desafortunado es que no hay muchos escenarios que Window. Opener sea adecuado, y el documento. Referrer es tan débil que es imposible determinar con precisión la fuente de tráfico en muchos escenarios.
Descripción general de Document.Referrer
En términos de uso, document.Referrer espera rastrear el comportamiento del navegador. Si se abre una página A, entonces las acciones que pueden ocurrir en el navegador incluyen operaciones de usuario y código JS.
Primero echemos un vistazo a las acciones que los usuarios pueden realizar al abrir la página A:
| 1 | Ingrese la dirección de un directamente en la barra de direcciones |
| 2 | Haga clic izquierdo Enlace A desde la página B y salte a la página A |
| 3 | Haga clic con el botón derecho en enlace A desde la página B para abrir en una nueva ventana |
| 4 | Haga clic con el botón derecho en enlace A desde la página B y ábralo en la nueva pestaña |
| 5 | Arrastrar el enlace a a la barra de direcciones |
| 6 | Arrastre el enlace a a la barra de pestañas |
| 7 | Use los botones de avance y retroceso del navegador |
Tenga en cuenta que el enlace aquí se refiere a la etiqueta <a>, pero si hay un evento u objetivo, debería ser un asunto diferente.
Posibles formas de abrir una página por JS:
| 1 | Modificar ventana. Ubicación |
| 2 | Usar ventana. Abre |
| 3 | Haga clic en Flash |
El anterior enumera algunos métodos para que el cliente abra la página. Además, si se utiliza la tecnología de redirección del servidor, la página A también se puede presentar a los visitantes.
Aquí hay una prueba específica del navegador. Si las situaciones anteriores son las anteriores, ¿cómo realiza document.referrer?
| Número de serie | Escena | IE8.0 | FF3.6 | Ff4.0 | cromo |
| 1 | Ingrese la dirección de un directamente en la barra de direcciones | " | " | " | " |
| 2 | Haga clic izquierdo Enlace A Desde la página B y la página A Página B (Target = '_ Self') | √ | √ | √ | √ |
| 3 | Enlace izquierdo de clic A Desde la página B, A se abre en una nueva ventana (Target = '_ Blank') | √ | √ | √ | √ |
| 3 | Haga clic con el botón derecho en enlace A desde la página B para abrir en una nueva ventana | √ | √ | √ | " |
| 4 | Haga clic con el botón derecho en enlace A desde la página B y ábralo en la nueva pestaña | √ | √ | √ | " |
| 5 | Arrastre el enlace A a la barra de direcciones con el mouse | / | " | " | " |
| 6 | Enlace de arrastre del mouse A a la barra de pestañas | " | " | " | " |
| 7 | Use los botones de avance y retroceso del navegador | Mantener | Mantener | Mantener | Mantener |
| 8 | Modificar ventana. Ubicación para abrir la página A (mismo dominio) | " | √ | √ | √ |
| 9 | Abra la página A usando ventana. | " | √ | √ | √ |
| 10 | Haga clic en Flash para abrir la página A | ||||
| 11 | Redirección del servidor a la página A | " | " | " | " |
Donde "" significa una cadena vacía, √ significa que la página de origen puede juzgarse correctamente, y mantener significa que el referente que no cambiará la página cuando se avance y hacia atrás no cambiará. Desde esta tabla, podemos ver ese documento. Referrer puede cubrir aproximadamente la mitad de los casos. Sin embargo, para algunas operaciones más utilizadas, como arrastrar el enlace a la barra de pestaña con el mouse, avanzar hacia adelante y hacia atrás, etc., no se puede manejar correctamente.
Fuente de documento.Referrer
Cuando el navegador solicita la página A desde el servidor, enviará una solicitud HTTP. El encabezado de esta solicitud tendrá el atributo de referente. Después de que el servidor recibe la solicitud, puede extraer el referente en el encabezado para determinar qué página el visitante inició la solicitud.
En términos generales, ¿cuál es el referente en el encabezado enviado por el navegador al solicitar A, entonces cuál es el valor de document.Referre después de obtener la página A. La imagen anterior es un encabezado que solicita la página A y el documento.referre de a es http: //localhost/test/b.html.
Si el encabezado no contiene referencia, cuando se usa document.referre, se asignará como una cadena vacía.
Acerca de la solicitud HTTPS
Si hace clic en un enlace HTTPS en una página HTTP normal, puede adjuntar la información de referencia al encabezado de solicitud HTTPS, y luego puede usar documento. Referre para obtener la página HTTP normal en la página HTTPS.
Del mismo modo, si hace clic en otro enlace HTTPS en una página HTTPS, puede adjuntar la información de referencia al encabezado de la solicitud.
Sin embargo, si hace clic en el enlace HTTP desde una página HTTP, desafortunadamente, el encabezado de solicitud HTTP enviado no puede contener información sobre la página HTTP, que puede deberse a una medida de protección para la página HTTP.
Información de referencia forjada
De acuerdo con la descripción anterior, Document.Referre se deriva del referente en el encabezado. Entonces, si desea modificar el valor de Document.Referre, teóricamente, solo necesita modificar el encabezado de solicitud. Puede reemplazar el referente existente en el encabezado con el valor que desea. Si no está disponible originalmente, puede agregar el referente.
En el lado del cliente, manipular el encabezado es algo muy fácil. Antes de que se envíe una solicitud HTTP en una página, puede usar la herramienta Interceptor de paquetes para interceptarla, luego analizar la información del encabezado y modificar la referencia.
Después de buscar, Firefox se puede modificar fácilmente utilizando el complemento RefControl. De todos modos, engañar a la fuente de tráfico es muy fácil.
Force de la página Actualización
Poco después de que terminé de escribir, descubrí que faltaba una forma de saltar, es decir, obligar a la página a especificar en la metaetiqueta en el HTML para actualizar. Por ejemplo, escriba en B.html
Copie el código del código de la siguiente manera: <meta http-oquiv = "refresh" content = "5; url = a.html">
Luego, después de 5 segundos, el navegador iniciará automáticamente una solicitud de página al servidor.
Después de la prueba, en IE8, FF3.6-FF4.0, no habrá información de referente, pero Chrome puede agregar B.HTML como referente al encabezado por error.