1

客户

  • Mac OS 10.15.3

服务器

  • Ubuntu 18.04.4
  • 阿帕奇 2.4.29
  • PHP 7.4.5

获取一个脚本,将其命名为 /test.php。让我们跟踪每个视觉的、用户体验的页面加载发生了多少实际页面加载。

# 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=1

在 Chrome 中,加载次数与预期一致 - 1、2、3,然后是 4、5 等。

此外,如果您在私人窗口中执行此操作,Safari 的行为与预期一样 - 与 Chrome 的行为一样。

为什么 Safari 会这样?堆栈中的其他东西是否有贡献,例如来自 Apache 或 PHP?

编辑 1

一个较小的测试用例的 Apache 日志。 (!!!) test.php?v=3 被记录,尽管我没有故意要求。

# 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"

编辑 2

以下是 test.php 的精简内容。需要 Redis 和 PHP-Redis,因为我正在使用它来快速查看。如果您愿意,当然可以使用 Apache 日志,或者任何其他方式来快速查看脚本已执行的次数。

<?php 
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

echo $redis->incr('counter');
4

0 回答 0