HTTP URL 的组成部分是什么?它们在 HTTP 请求中扮演什么角色?

use*_*917 3 networking url http

鉴于此链接: http://clk.tradedoubler.com/click?p=113177&a=89693&g=189788889&url=http://track.adform.net/C/?bn=8997990;cpdir=http://www.tele2.se/mobilt-bredband.html?utm_source=tradedoubler&utm_medium=Affiliate&utm_campaign=Omnitel_Tradedoubler

首先,浏览器向 http://clk.tradedoubler.com/click?p=113177&a=89693&g=189788889

&url=有点像重定向查询参数,redirects指向另一个远程 URL:

http://track.adform.net/C/?bn=8997990;cpdir=http://www.tele2.se/mobilt-bredband.html?utm_source=tradedoubler&utm_medium=Affiliate&utm_campaign=Omnitel_Tradedoubler

在此 URL 中,查询参数;cpdir=也用作重定向查询参数,重定向指的是:

http://www.tele2.se/mobilt-bredband.html?utm_source=tradedoubler&utm_medium=Affiliate&utm_campaign=Omnitel_Tradedoubler

所有这些参数都附加在查询字符串的其余部分之前,我不明白其含义:?utm_source=tradedoubler&utm_medium=Affiliate&utm_campaign=Omnitel_Tradedoubler

&url=和 和有;cpdir=什么区别?

all*_*tic 6

你的分析是错误的。它不是“某种重定向”。顺便说一句:这个答案中的每条水平线都表明我对您的知识假设的一次飞跃:我从最基本的开始,然后通过每条连续的水平线转向更高级的主题。

使用Burp ProxyWebScarab等软件工具。这些是通常的安全测试工具,但您正在尝试学习与URLHTTP相关的非常简单的概念,这些可能有助于您通过经验学习。设置这些代理之一来拦截 Web 浏览器中的 URL。最容易用于此目的的是 Mozilla Firefox,您可以安装代理切换插件,例如FoxyProxy Standard

当您点击帖子中的原始链接时,实际发生的是您的网络浏览器:

其中...信息替换为相关字段。


为了理解 this 的含义,您必须了解它对 的含义make an HTTP Request。这正是正在发生的事情。

对 URL 进行解构,以便将 URL 的整个查询字符串(http://domain.com部分除外)发送到远程服务器。

现在,您必须意识到远程服务器可以使用此信息做任何它想做的事情。它不具备做任何事情与它。除了其他无限的可能性之外,它还可以:

  • 忽略信息
  • 向查询字符串中指定的参数中的 URL 发送 HTTP 请求
  • 向您的计算机发送 HTTP 响应,指示重定向到查询字符串中的 URL 之一
  • 将信息存储在数据库中
  • 致电美国总统并使用文本阅读器阅读 URL
  • 使用查询字符串输入作为随机数生成器来确定在坎贝尔字母汤从生产线滚下时将哪些字母输出到罐头中
  • 等等...

&url=http://...仅仅是查询字符串的一部分被送到clk.tradedoubler.com。为了了解该主机对该查询字符串的处理方式,您必须查看在clk.tradedoubler.com服务器上处理此信息的软件的源代码。从“黑匣子”的角度来看,您可以做的是观察浏览器在发送此HTTP 请求后收到的HTTP 响应(如果有)。为此,我建议您参考我上面的建议,使用 Burp 或 WebScarab。clk.tradedoubler.com

但是,你应该不会认为,在一般情况下,该信息被传递给它的查询参数的远程服务器正在做什么特别的事。您应该假设的是,它可能会做可以想象的最糟糕的事情——以这种方式思考至少会帮助您发现它可能对您的个人信息构成的任何潜在威胁。


一旦你理解了这些基本概念,你就可以开始了解这个 URL 实际在做什么。它显然是网络广告系统的一部分。该utm引用的Urchin跟踪模块已集成(其API至少,针对后端,谁知道)进入谷歌AdWords系统。因此,至少可以安全地假设此请求正在尝试存储有关您的 Web 浏览习惯的一些信息,以便为您提供相关广告。


关于这个单独的问题:

&url=和 和有;cpdir=什么区别?

&url=是一个名为url的查询参数的开始,其分隔符是&

;cpdir=是一个名为cpdir的查询参数的开始,其分隔符是;。嵌入 URL 中使用的分隔符在;功能上等同于&. 使用它的原因是,如果&使用它,它会将解析原始 URL 的 HTTP 服务器混淆为认为 后面的所有内容&以外部 URL的新 URL 参数的名称开头。

这就像那些俄罗斯套娃类型的问题之一,在 URL 中的 URL 中有一个 URL。您需要某种方法来防止接收“外部”URL 的 HTTP 服务器将传递给内部 URL 的参数解释为属于外部 URL 的参数。这就是为什么从 切换&;。有关查询字符串的格式和语法的更多信息,请参阅维基百科关于查询字符串的条目