【问题标题】:What exactly does this url mean?这个网址到底是什么意思?
【发布时间】:2009-02-24 06:46:10
【问题描述】:

我在我们的一个网络应用程序中使用了不同的分析标签。他们中的大多数调用一个javascript代码进行跟踪。

一些标签有带有查询字符串的 gif 图像的 url。

例如:http://www.google-analytics.com/__utm.gif?utmwv=45.542

这个网址到底是做什么的?他们如何从查询字符串中获取值?

更新:(阅读一些答案后)我知道每个浏览器都会加载 1x1 像素的 gif。但是他们如何从查询字符串中获取值?在上述情况下,他们如何检索 utmwv 的值?任何代码示例?

【问题讨论】:

    标签: javascript seo query-string


    【解决方案1】:

    基本上,您用自己喜欢的语言编写脚本,并将该脚本映射到 yourtrackingscript.gif。 ..jpg、png 甚至。

    已在 asp.net 中使用 http 处理程序完成此操作。

    脚本像任何其他动态页面(aspnet、asp、php 等等)一样读取查询字符串,然后将其写入 db 或日志文件,或者执行任何您想做的事情。

    然后适当地设置内容类型标头,例如“image/gif”,然后发回 1 像素图像或您喜欢的任何其他大小的图像。

    对于只有 1 像素的图像,我在十六进制编辑器中打开了一个 1 像素的 spacer.gif 类型的图像,并将其硬编码为字节数组以作为响应发送出去,这样可以节省一点 IO 开销受到很多打击,或者,您可以从磁盘或数据库中读取文件并将其发回。

    这是电子邮件通讯中常用的技巧,用于跟踪打开率等。
    通常最困难的一点是当您没有足够的权限将 url 映射到共享机器上的脚本时,但是您可以将其开发为普通的脚本/程序,然后在它工作后整理映射.

    如果大多数现代浏览器发送正确的标头,大多数现代浏览器会将 aspx 或 php (.etc...) url 作为图像响应,它是旧浏览器、浏览器保姆插件和电子邮件客户端,这是最棘手的.

    【讨论】:

      【解决方案2】:

      就像您可以将查询字符串传递给 ASP.NET 页面一样,您实际上可以将查询字符串传递给任何 URL;如果您使用基于 MVC 的框架,如 ASP.NET MVC 或 Rails,则从这样的 URL 中捕获参数很容易。然后,您所要做的就是返回一个 GIF 图片。

      【讨论】:

        【解决方案3】:

        任何浏览器都会在他的 url 上加载图片,即使没有 javascript。当它这样做时,可以捕获来自客户端的查询字符串参数和请求标头以进行分析。因此,它允许在没有 javascript 的情况下捕获分析。

        【讨论】:

        • 如何捕获?是我的问题:)
        • 这个 url 连接的主机是一个 web 应用程序。这个 Web 应用程序可以与他们自己的数据库交互,并尽可能多地检查查询字符串和标题。完成所有这些操作后,Web 应用程序返回一个小 gif 作为对请求的响应。
        【解决方案4】:

        那不是 GIF,那是空间站 (测试版)

        换句话说,虽然 URL 似乎指向一个图像,但 www.google-analytics.com 上的网络服务器将此请求传递给一些处理脚本,然后提取数据并将 1x1 GIF 图像内容发送回浏览器。

        这是一个使用 Apache 网络服务器和 mod_rewrite 的示例:

        # in .htaccess
        RewriteEngine On
        RewriteRule ^__utm\.gif /someprocessingscript.php [QSA]
        
        <?php // in someprocessingscript.php
        do_some_tracking($_GET); // this would probably analyze and log data
        header('Content-Type: image/gif');
        readfile('1x1.gif');
        exit;
        ?>
        

        另一种选择:提供一个真实的 GIF(可能是 Cache-Control: no-cache),记录所有访问,然后分析日志。这可能会更快,因为这不需要内部重写,也不需要每次访问都编写脚本。

        【讨论】:

          【解决方案5】:

          当您请求图像时,查询字符串仍会发送到服务器。

          当然,我不知道他们如何处理服务器上的数据的确切细节,但 .gif 是一种相当常见的将数据发回用于分析目的的方式。

          【讨论】:

            【解决方案6】:

            嗯.. __utm.gif 是一个 1x1 像素的图像,谷歌必须记录访问 - 这意味着他们也在他们的日志中收集查询字符串值。真的没有什么棘手的。我认为 utmwv 是一个版本号,但不清楚这个数字是什么意思

            【讨论】:

            • 怎么样?我知道它的 gif,任何浏览器都会加载它。但是他们如何从查询字符串中获取值。有代码吗? :) 感谢您的回复
            【解决方案7】:

            但是他们如何从查询字符串中获取值?在上述情况下,他们如何检索 utmwv 的值?有代码示例吗?

            如果他们想要调用页面,他们有引用者,如果他们想要他们的参数,他们有请求 URI。

            print($_SERVER['HTTP_REFERER']);
            print($_SERVER['REQUEST_URI']);
            

            【讨论】:

              猜你喜欢
              • 2016-06-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-06-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-12-02
              相关资源
              最近更新 更多