为什么服务器端地理位置检测优于客户端 API 调用?

Why server side geo location detection is preferred over client side API call?

我需要在我们的网站上实施地理位置检测。 (我需要计算状态变量并将其传递给 Google 跟踪代码管理器,将来可能会在服务器端使用此变量来根据状态呈现特定块,但目前仅在 GTM 的客户端需要它)

我发现 this article 非常有帮助。这是一个检测天气的更复杂的例子。我只需要地理位置。 在文章中,作者给出了客户端 API 调用的示例,但他多次建议完全使用服务器端调用。

For those who want to take this weather analysis seriously, I really recommend moving to a 100% server-side solution, where the weather data is polled before the page itself is rendered, and the data is written in the dataLayer of the page.

If you’re serious about this solution, you might want to install a geolocation service on your own web server, so that you’ll avoid needing to make any extra API calls in the client.

服务器端检测似乎更好,但我不太明白为什么。谁能解释一下。

一个给定的原因是安全性 - 如果您通过 Javascript 查询商业 API 并在您的请求中传递 API 密钥,其他人可能会使用它,费用由您承担。

此外,对于 JavaScript,您必须发出请求,然后等待响应,然后才能继续呈现您的页面。使用服务器端解决方案,查询、错误处理等在浏览器呈现页面时已经完成;您也可以将请求缓存给您 API 以降低成本并加快交付速度。