65.9K
CodeProject 正在变化。 阅读更多。
Home

Zeta Links

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.91/5 (9投票s)

2009年11月23日

CPOL

5分钟阅读

viewsIcon

26908

downloadIcon

376

一个用于生成和测量快捷链接的 Web 应用程序,类似于 bit.ly

Click for larger image

引言

本文介绍了一个 Web 应用程序,该应用程序允许您创建指向任意 URL 的快捷链接并监控其使用情况(即谁点击了它)。因此,在某种程度上,该应用程序可以与市面上各种 URL 缩短服务进行比较,例如 TinyUrl.combit.ly

与 URL 缩短服务不同,我的目标*不是*提供更短的 URL,而是专门监控超链接的使用情况。

例如,我将我们 CMS Zeta Producer 的可执行安装程序的每次下载都通过 Zeta Links 的 URL 进行路由。由于安装程序可执行文件无法被 Web 分析器(如 Google Analytics)跟踪,因此这是我实际跟踪下载链接使用情况的唯一机会(当然,我可以分析服务器日志文件,但这对于我们的场景来说太底层了)。

工作流

如果一切设置正确,您可以使用类似 *http://www.my-cool-website.com/links/my-new-setup* 这样的链接。

URL 解析的“工作流程”如下:

  1. 管理员配置一个符号名称为“*my-new-setup*”的链接,指向“*http://www.my-other-cool-website.com/downloads/files/setup-1.4.0.5.exe*”。
  2. 该链接在网站上放置为“*http://www.my-cool-website.com/links/my-new-setup*”。
  3. 访问者点击该链接。
  4. 由于不存在名为“*my-new-setup*”的实际资源,IIS 会调用配置的 HTTP 404 处理程序。
  5. 配置的 HTTP 404 处理程序的 ASPX 页面会在数据库中查找符号名称为“*my-new-setup*”的条目。
  6. 如果 HTTP 404 处理程序找到条目,则会加载该条目,读取其目标 URL,并将 HTTP 302 重定向发送回用户的 Web 浏览器。
  7. 数据库条目的链接点击计数会增加一。
  8. 用户的 Web 浏览器会打开实际的目标 URL。

架构

该应用程序由以下几个构建块组成:

  • 一个主 Web 应用程序,提供用于创建、修改、监控和评估链接的管理 GUI。
  • 一个 Microsoft SQL Server 数据库,用于存储关于链接的信息。
  • 一个可选的卫星 Web 应用程序,可用于在远程服务器上使用 Zeta Links。稍后将详细介绍。

我将在接下来的章节中快速讨论这些部分。

主 Web 应用程序

主 Web 应用程序是一个 ASP.NET 3.5 C# 项目。您可以将其部署到 Microsoft Windows 2003 Server 或更新的服务器版本。

您可以像配置其他 ASP.NET 应用程序一样配置该应用程序,即调整“*web.config*”文件中的设置。此外,您需要配置 IIS,将所有 HTTP 404 请求路由到一个应用程序的 ASPX 文件。

用户定义的 HTTP 404 错误处理程序示例(抱歉,只有德语,但您可能会明白意思)。

SQL Server 数据库

应用程序下载包含一个适用于 Microsoft SQL Server 2005 或更高版本的 SQL 脚本,用于创建一个空数据库。

创建后,您需要在 ASP.NET Web 应用程序的“*web.config*”文件中配置数据库连接字符串。

卫星 Web 应用程序

当我们首次使用 Google AdWords 推广产品时,就产生了卫星 Web 应用程序的想法。

由于我希望衡量有多少人是通过我们的 Google AdWords 广告点击到落地页的,所以我设置了一个新的 Zeta Links 条目,并将该 URL 输入到 Google AdWords 中。不幸的是,Google 要求广告向最终用户显示的 URL 的域名必须与实际重定向到的链接相同。

现在我遇到了一个问题:Zeta Links 设置在服务器 1 的域 A 上,而我们广告的目标 URL 设置在服务器 2 的域 B 上。

一种可能的解决方案是简单地复制 Web 应用程序和数据库,并在服务器 2 上进行复制。通过这种解决方案,我将失去将所有信息集中在一处的能力。

于是我开发了另一个解决方案:

  • 在主 Web 应用程序中创建一个 SOAP Web 服务,提供将 Zeta Links URL 解析为目标 URL 的核心服务。
  • 创建一个非常轻量级的 Web 应用程序(我称之为“卫星 Web 应用程序”),只包含一个 HTTP 404 重定向处理程序,没有 GUI。
  • 让卫星 Web 应用程序调用主 Web 应用程序的 SOAP Web 服务。
  • 在服务器 2 上配置卫星 Web 应用程序。

虽然这不是一个高性能的解决方案,但在我们的场景中效果很好。

因此,如果您需要在不同的服务器上提供 Zeta Links 链接解析,即使跨越数据中心边界,也请使用卫星 Web 应用程序。否则,请忽略它。

特点

主 Web 应用程序包含一个简单但对我们的场景来说恰到好处的 GUI。本章将展示一些屏幕截图,让您对这些功能有一个初步的了解。

创建新链接

Click for larger image

此表单使您能够创建新链接或编辑现有链接。

显示统计信息

Click for larger image

此页面显示您在可配置时间范围内对给定链接的点击次数。

重要信息包括:

  • 点击次数,包括人类点击和网络爬虫/蜘蛛点击。
  • 点击的图形图表。
  • “备注”功能,允许您在图表中为重要事件添加标记。
  • 有关哪个 IP 地址点击了链接的详细信息。

应用程序代码

在查看应用程序代码时,您可能会震惊地发现没有什么突破性的东西。

主 Web 应用程序使用 ASP.NET 的“App_Themes”来构建其 GUI,因此如果您想更改管理区域的外观和感觉,只需修改此文件夹中的文件即可。

我将本文发布在“实用工具”部分,以表明本文包含的代码不那么令人兴奋,更多的是为您的项目提供一个基础。

结语

本文介绍了一个可用于创建、管理和评估快捷链接的“真实世界”应用程序。

一如既往,我非常希望收到您的反馈、建议和改进意见。请随时在本文的讨论区给我留言。

历史

  • 2009-11-23 - 首次发布
© . All rights reserved.