当我们使用301重定向时如何收集客户端数据

How to collect client data when we redirect using 301 redirect?

本文关键字:何收集 客户端 数据 重定向 我们      更新时间:2023-09-26

有一个像Clickmeter这样的系统,允许人们为他们的横幅广告创建一个智能链接。这里是对该系统的简短解释。你可以输入一个URL作为登陆页面,系统会给你一个特殊的URL来代替原来的URL。现在,如果有人点击了这个特殊的链接,他将被重定向到你想要的登陆页面。

我正在开发类似的东西,但这里有麻烦。我必须使用301重定向,因为一些SEO的事情,301重定向只在服务器端可用,我知道。但是我想在重定向客户端之前获得一些客户端数据,例如浏览器名称,操作系统模型和浏览器语言。我在javascript中做这部分,绝对是客户端。

我不知道该怎么做,或者如果我错了什么。但我知道Clickmeter正在做我想做的事情。他们获取一些客户数据,然后进行301重定向。下面是CLickmeter的一个示例链接:http://9nl.it/vz0d

您不会在客户端获得客户端的数据。您可以在服务器端通过在执行301重定向之前读取和处理Request.UserAgent来完成:

// get the User Agent
string userAgentText = HttpContext.Current.Request.UserAgent;
// Process the User Agent, and extract the information you want: browser, OS, version...
...
// Make the 301 redirection to the target URL programmatically
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location", TARGET_URL);

您可以通过使用window.navigator.userAgent在JavaScript中获得类似的信息(以及AJAX在单击时发送数据),但我不推荐这种解决方案,原因有两个:

  • 如果你只是提供一个URL(你的服务听起来像一个URL缩短器),你不能注入JavaScript代码
  • 如果用户禁用了JavaScript,这个解决方案将无法工作。

要了解如何做到这一点的更多信息,请阅读这些问题:

  • 我如何从Request.UserAgent中获取操作系统?
  • 请求。UserAgent和Request.Browser?
  • 301重定向
  • 如何检测浏览器的版本?(如果你仍然决定用JS的方法)