Docenas de solicitudes HTTP idénticas desde Chrome en Android

Docenas de solicitudes HTTP idénticas desde Chrome en Android

Veo un patrón extraño en mi registro de acceso HTTP. A veces, un navegador Chrome móvil realiza docenas de solicitudes HTTP aparentemente redundantes para obtener la misma página.

¿Qué podría causar este comportamiento?

  • ¿Una aplicación con errores que utiliza la cadena Usuario-Agente predeterminada?
  • ¿Error del navegador? Parece poco probable, ya que esto abarca al menos Chrome 34 a 45.
  • ¿Error de Android? Parece poco probable por el mismo motivo (al menos 4.4.4 a 5.1.1.).
  • Algo en el sitio, por ejemplo. ¿Código JS que provoca la redirección, pero solo en estos agentes de usuario? Esto ha sucedido en varios sitios (aunque tienen el mismo CMS), pero más del 99 % de los sitios no muestran este comportamiento.
  • Usuario, ¿intencionalmente? ¿Cómo se puede presionar recargar 20 veces por segundo con una pantalla táctil? :) (Por supuesto que uno podría tener un teclado bluetooth, pero parece poco probable)
  • ¿Algo más?

Aquí hay un extracto de registro de una ocasión. Una dirección IP, anónima: (hora, código de respuesta, solicitud, referente)

19:01:33 404 "GET /6/ HTTP/1.1" "-"
19:01:34 404 "GET /favicon.ico HTTP/1.1" "-"
19:01:36 200 "GET /7/ HTTP/1.1" "http://www.example.com/6/"
19:01:41 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:01:42 200 "GET /1.jpeg HTTP/1.1" "http://www.example.com/8/"
19:01:42 200 "GET /2.jpeg HTTP/1.1" "http://www.example.com/8/"
19:01:42 200 "GET /3.jpeg HTTP/1.1" "http://www.example.com/8/"
19:01:44 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:01:45 200 "GET /10/a.css HTTP/1.1" "http://www.example.com/9/"
19:02:02 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:02:13 200 "GET /12/ HTTP/1.1" "http://www.example.com/11/"
19:02:13 200 "GET /4.jpeg HTTP/1.1" "http://www.example.com/12/"
19:02:28 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:02:29 200 "GET /5.jpeg HTTP/1.1" "http://www.example.com/13/"
19:02:34 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:09 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:11 200 "GET /15/ HTTP/1.1" "http://www.example.com/14/"
19:03:18 200 "GET /16/ HTTP/1.1" "http://www.example.com/15/"
19:03:18 200 "GET /17/b.js HTTP/1.1" "http://www.example.com/16/"
19:03:18 200 "GET /17/c.js HTTP/1.1" "http://www.example.com/16/"
19:03:18 200 "GET /17/d.js HTTP/1.1" "http://www.example.com/16/"
19:03:21 200 "GET /18/ HTTP/1.1" "http://www.example.com/16/"
19:03:26 200 "GET /16/ HTTP/1.1" "http://www.example.com/15/"
19:03:26 200 "GET /16/ HTTP/1.1" "http://www.example.com/15/"
19:03:26 200 "GET /16/ HTTP/1.1" "http://www.example.com/15/"
19:03:27 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:27 200 "GET /15/ HTTP/1.1" "http://www.example.com/14/"
19:03:27 200 "GET /15/ HTTP/1.1" "http://www.example.com/14/"
19:03:27 200 "GET /15/ HTTP/1.1" "http://www.example.com/14/"
19:03:27 200 "GET /15/ HTTP/1.1" "http://www.example.com/14/"
19:03:28 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:32 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:36 200 "GET /18/ HTTP/1.1" "http://www.example.com/16/"
19:03:44 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:44 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:44 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:44 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:44 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:44 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:44 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:44 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:45 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:45 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:45 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:45 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:45 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:45 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:46 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:46 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:46 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:46 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:46 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:47 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:47 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:47 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:47 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:47 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:47 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:47 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:48 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:48 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:48 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:48 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:48 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:48 200 "GET /16/ HTTP/1.1" "http://www.example.com/14/"
19:03:49 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:49 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:49 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:49 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:49 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:50 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:50 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:50 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:50 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:50 200 "GET /14/ HTTP/1.1" "http://www.example.com/8/"
19:03:51 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:51 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:03:51 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:51 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:51 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:52 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:52 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:52 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:52 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:52 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:53 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:53 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:53 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:53 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:53 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:53 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:54 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:54 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:55 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:55 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:55 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:55 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:55 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:55 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:56 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:56 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:56 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:56 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:56 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:56 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:56 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:57 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:57 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:57 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:57 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:57 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:57 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:58 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:58 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:58 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:58 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:58 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:58 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:59 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:59 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:59 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:59 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:59 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:03:59 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:00 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:00 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:00 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:00 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:00 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:00 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:00 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:01 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:01 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:01 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:01 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:01 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:01 200 "GET /8/ HTTP/1.1" "http://www.example.com/13/"
19:04:02 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:03 200 "GET /12/ HTTP/1.1" "http://www.example.com/11/"
19:04:03 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:03 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:03 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:03 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:04 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:04 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:04 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:04 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:04 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:05 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:05 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:05 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:05 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:05 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:06 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:06 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:06 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:06 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:06 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:07 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:07 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:07 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:07 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:07 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:08 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:08 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:08 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:08 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:08 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:09 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:09 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:09 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:09 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:09 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:10 200 "GET /13/ HTTP/1.1" "http://www.example.com/12/"
19:04:10 200 "GET /12/ HTTP/1.1" "http://www.example.com/11/"
19:04:14 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:04:15 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:04:15 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:04:15 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:04:15 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:04:15 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:04:16 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:04:16 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:04:16 200 "GET /11/ HTTP/1.1" "http://www.example.com/9/"
19:04:16 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:17 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:17 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:17 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:17 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:17 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:17 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:18 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:18 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:18 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:18 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:18 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:18 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:19 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:19 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:19 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:19 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:19 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:20 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:20 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:20 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:20 200 "GET /9/ HTTP/1.1" "http://www.example.com/8/"
19:04:21 200 "GET /7/ HTTP/1.1" "http://www.example.com/6/"
19:04:21 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:21 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:21 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:21 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:21 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:21 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:22 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:22 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:22 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:22 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:22 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:22 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:22 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:23 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:23 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:23 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:23 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:23 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:23 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:23 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:24 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:24 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:24 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:24 200 "GET /8/ HTTP/1.1" "http://www.example.com/7/"
19:04:24 200 "GET /7/ HTTP/1.1" "http://www.example.com/6/"
19:04:25 404 "GET /6/ HTTP/1.1" "-"
19:25:16 404 "GET /6/ HTTP/1.1" "-"
19:25:17 404 "GET /favicon.ico HTTP/1.1" "-"
19:43:38 404 "GET /favicon.ico HTTP/1.1" "-"
20:24:39 404 "GET /favicon.ico HTTP/1.1" "-"

Aparte de lo extraño de "apoyar el dedo en F5", todo parece una navegación humana legítima, no un robot desbocado:

  • el usuario avanza de una página a otra, carga imágenes y recursos js/css (no todos se muestran aquí, ya que algunos se cargan desde un dominio de activos)

  • Las direcciones IP son direcciones de operadores móviles nacionales (múltiples operadores).

  • El campo de referencia se ve bien

Las cadenas de User-Agent encontradas hasta ahora con este comportamiento:

Mozilla/5.0 (Linux; Android 4.4.4; SM-G357FZ Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.94 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 4.4.4; SM-G357FZ Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.94 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG GT-I9506 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.1 Chrome/34.0.1847.76 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 5.1.1; SAMSUNG SM-G920F Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/3.2 Chrome/38.0.2125.102 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 5.0.1; SAMSUNG GT-I9506 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/2.1 Chrome/34.0.1847.76 Mobile Safari/537.36

información relacionada