【问题标题】:How are Tweets sent?推文是如何发送的?
【发布时间】:2014-01-31 13:57:43
【问题描述】:

我对这里的一些事情感到非常困惑。从网站点击“Tweet”按钮后,如何将推文发送到服务器?

为了回答这个问题,我设置了一个代理侦听器来拦截所有请求和所有内容。我将浏览器设置在 localhost 和所有内容上,虽然我在加载 Twitter.com 时收到了所有请求,但从我点击“Tweet”到它出现在我的信息流中时,没有收到任何请求。

这在物理上怎么可能?我在这里缺少一些非常简单的东西吗?

【问题讨论】:

    标签: post twitter proxy http-request


    【解决方案1】:

    Twitter 现在只使用 HTTPS,因此如果不设置 MITM 代理,您将无法窥探正在传输的数据。

    关于设置 MITM 代理,请查看此软件:mitmproxy

    如果您希望自己发送推文,与 Twitter 网页/应用程序分开,请查看他们的 API:Twitter 1.1 API - statuses/update

    大多数浏览器都带有开发者插件,可以让您查看请求(包括 HTTPS 请求)正在发送哪些数据。最好的——在我看来——是 Chromes 开发者扩展(默认安装),可以通过按“F12”打开。另一种选择是Firebug for FireFox,安装后也可以按“F12”打开。

    此外,也许您应该在帖子中添加更多背景信息,例如您感兴趣的平台,例如 Android、iPhone 或 Web(即 Twitters vanilla 网站)。

    【讨论】:

    • 感谢参考!我现在正在检查它。我最初确实指定它是用于网站的,但我进行了编辑和重新澄清。谢谢。
    • 认为您可能还可以使用 Wireshark 配置为侦听 tcp 端口 443。
    • 如果没有将 Wireshark 配置为 MITM,我记得这并不是那么简单(尽管自从我上次尝试以来已经有一段时间了..)。 MITM 通过为您提供安装的 CA 来处理所有这些。一个非常有用的应用程序,用于使用 HTTPS 的逆向工程应用程序。
    【解决方案2】:

    假设您使用的是 twitter 网站,使用 TamperData 的快速浏览显示,浏览器正在向 https://twitter.com/i/tweet/create 发送包含推文内容的 POST 请求。

    【讨论】:

    • 所以我的代理监听器不够成熟?
    • 这是一个很好的观点 - 现在我知道您在浏览器中工作,任何类型的开发插件都应该能够为您提供所需的信息。
    【解决方案3】:

    我正在研究 Twitter 是否在其网站中使用 https://api.twitter.com 来发送推文,我注意到(使用 Chrome F12)该请求实际上是通过 https://twitter.com/i/tweet/create 发送的。我的印象是,Twitter 从其网站发出了一个安静的调用,就像在使用其 API 的设备中一样。他们在服务器上是否有一个代理来转换来自浏览器的请求并将其转发到其网络服务?而且,如果所有请求都通过 POST /1/direct_messages/new.json HTTP/1.1 转换并发送到其 api 子域,他们如何知道发出请求的设备?我注意到有效载荷是

    authenticity_token=abc1234c3&place_id=&status=Well%2C+this+is+a+message.+%7BAfter+registering%7D

    为脚本信息道歉 - 我只能在这篇文章中使用两个链接(你看到的新用户!)

    【讨论】:

      猜你喜欢
      • 2011-07-29
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      相关资源
      最近更新 更多