Toma un script, llámalo /test.php. Realicemos un seguimiento de cuántas cargas de página reales ocurren por carga de página visual y experimentada por el usuario.
# Count = 1 test.php?v=1 # Count = 2 test.php?v=1 # Count = 4 (???) test.php?v=2 # Count = 7 (???) test.php?v=1 # Count = 8 test.php?v=1 # Count = 10 (???) test.php?v=3 # Count = 11 test.php?v=3 # Count = 15 (???) test.php?v=2 # Count = 18 (???) test.php?v=1En Chrome, la cantidad de cargas es la esperada: 1, 2, 3, luego 4, 5, etc.
Además, Safari se comporta como se espera, como se comporta Chrome, si hace esto en una ventana privada.
¿Por qué Safari se comporta así? ¿Hay alguna contribución de algo más en la pila, como Apache o PHP?
Registro de Apache de un caso de prueba más pequeño. (!!!) test.php?v=3 se registra a pesar de que no lo solicité deliberadamente.
# Procedure test.php?v=1 test.php?v=1 test.php?v=2 # Apache Log of above page loads with IP redacted. REDACTED_IP - - [20/Apr/2020:11:35:26 +0000] "GET /test.php?v=1 HTTP/1.1" 200 8875 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15" REDACTED_IP - - [20/Apr/2020:11:35:28 +0000] "GET /test.php?v=1 HTTP/1.1" 200 5141 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15" REDACTED_IP - - [20/Apr/2020:11:35:42 +0000] "GET /test.php?v=3 HTTP/1.1" 200 8876 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15" REDACTED_IP - - [20/Apr/2020:11:35:42 +0000] "GET /test.php?v=2 HTTP/1.1" 200 5141 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15" REDACTED_IP - - [20/Apr/2020:11:35:43 +0000] "GET /test.php?v=2 HTTP/1.1" 200 5705 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15"Aquí están los contenidos simplificados de test.php. Requiere Redis y PHP-Redis, ya que lo estoy usando para una visualización rápida. Por supuesto, puede usar los registros de Apache si lo desea, o cualquier otra forma de ver rápidamente la cantidad de veces que se ejecutó el script.
<?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); echo $redis->incr('counter');