Php web浏览器是否缓存重定向响应?还是拉威尔?

Php web浏览器是否缓存重定向响应?还是拉威尔?,php,laravel,https,Php,Laravel,Https,因此,我用Laravel 5.4构建了一个小的URL缩短器,在这里我有一个路径:domain.com/{urlkey}-我获取密钥并在Redis中的Laravel缓存中查找它。我还有另一个跟踪访问次数的键,所以只要访问URL,我就增加:vists键 现在我已经注意到,当我把这些URL复制并粘贴到一个新的标签。。。甚至从我的应用程序中点击它,它完全忽略了我的代码。我可以放进一个骰子,它甚至不会停下来!这将永远不会触发密钥上的缓存增量 知道发生了什么事吗?可能遗漏了一些非常明显的东西 下面是简单的查

因此,我用Laravel 5.4构建了一个小的URL缩短器,在这里我有一个路径:domain.com/{urlkey}-我获取密钥并在Redis中的Laravel缓存中查找它。我还有另一个跟踪访问次数的键,所以只要访问URL,我就增加:vists键

现在我已经注意到,当我把这些URL复制并粘贴到一个新的标签。。。甚至从我的应用程序中点击它,它完全忽略了我的代码。我可以放进一个骰子,它甚至不会停下来!这将永远不会触发密钥上的缓存增量

知道发生了什么事吗?可能遗漏了一些非常明显的东西

下面是简单的查找和增量:但我甚至不认为它符合代码?为什么会这样

其他注意事项域是https-但是我已经在http和https上对此进行了测试

    // retrieve redirect URL from cache
    $redirectUrl = Cache::get('short:' . $shortKey);

    // if we find the redirect in the cache - increment visits - 301 redirect
    if($redirectUrl)
    {
        Cache::increment('short:' . $shortKey . ':visits', 1);

        return redirect($redirectUrl, 301);
    }

因为301=永久移动,浏览器将缓存它并在下次自动重定向,而无需调用原始页面


如果我没有弄错,如果您希望重定向始终通过原始页面,您需要将301替换为找到的
302

,因为301=永久移动,浏览器将缓存它并在下次自动重定向,而不调用原始页面


如果我没有弄错的话,如果你希望重定向总是通过原始页面,你需要将301替换为找到的
302

Chrome肯定会缓存301。你可以通过运行Fiddler并观察浏览器被重定向到目标页面而不需要任何HTTP流量通过代理来证明这一点。如果我没记错的话,它不会缓存302。那么,如果web浏览器正在缓存301重定向响应,那么像bit.ly这样的公司如何跟踪点击?我最后做的是添加了无缓存的缓存控制标头,并将expires标头设置为旧日期。现在似乎工作得很好。而且,如果能够像301Chrome那样保存下来,肯定会缓存301。你可以通过运行Fiddler并观察浏览器被重定向到目标页面而不需要任何HTTP流量通过代理来证明这一点。如果我没记错的话,它不会缓存302。那么,如果web浏览器正在缓存301重定向响应,那么像bit.ly这样的公司如何跟踪点击?我最后做的是添加了无缓存的缓存控制标头,并将expires标头设置为旧日期。现在似乎工作得很好。并且能够保持301Aw的状态。让我试试。哦,好的。让我试试看。