【问题标题】:Is there a way to shorten an HTTP response from PHP?有没有办法缩短 PHP 的 HTTP 响应?
【发布时间】:2013-01-12 00:26:20
【问题描述】:

我正在使用嵌入式数据采集系统,该系统使用 Telit GSM 调制解调器将传感器数据传输到网络。我目前正在使用简单的 GET 请求将数据发送到 php 脚本。我遇到的问题是 HTTP 响应相当大(~220 字节)。我目前有一个非常便宜的 8Mb/mo 数据计划,并且正在尝试最小化每次传输所需的字节数。我考虑过压缩一些传出数据,但那里的潜在收益相当小。由于响应没有用,除了表明请求成功(而且我什至不解析或使用它),我很想把它剪掉或至少缩短它(只是响应代码例子)。

有谁知道如何通过 PHP 做到这一点?到目前为止,我已经查看了 header() 函数但无济于事。我考虑的另一个选项是将请求发送到服务器程序(比如端口 15000 而不是 80),然后从那里向我的 php 脚本发出另一个请求,但这似乎很麻烦。我在用来访问 mysql 的学生服务器上没有合适的库,而且我也在使用 phpCurl,否则我可以为整个事情使用一个简单的服务器程序。

有什么想法吗?我们的服务器正在运行 PHP 版本 5.4.4

卢克

【问题讨论】:

  • 您认为您每个月会收到多少请求?因为你还有 40k 的空间。

标签: php http get


【解决方案1】:

您可以改为通过 TCP 连接发送数据吗?当然,在这种情况下,我假设您拥有自己的服务器计算机。我使用 Python 中的 Twisted 编写了一个简单的 TCP 服务器来与我的 Telit GM862-GPS 模块通信。然后您可以编写您的 TCP 服务器以将其上传到其他地方。

如果您将数据上传到其他网站(如 twitter),我认为您没有太多选择来最小化大小。

【讨论】:

  • 这种方式老了,从来没有正确地投票/选择这个答案。这就是我最终做的事情,而且效果很好。我想如果我再做一次,我会使用 MQTT(正如 Xorlev 建议的那样)。从那以后,我为另一个项目实现了它,并且非常喜欢它。
【解决方案2】:

为了缩短您的回复,我会检查 HTTP 服务器本身。话虽如此,你不会变得太小。

我可能会研究MQTT 进行传感器传输,这是一个非常轻量级的协议。

【讨论】:

  • 我认为这是最好的方法,尽管还有其他一些很酷的轻量级协议。
【解决方案3】:

一旦你的 PHP 脚本完成了它的工作,你应该能够简单地告诉它:

die();

$status = 1;
die($status);

然后您可以查找数字状态(或只是来自服务器的 200 响应)。在捕获响应数据之前,您可能必须检查代码以确保响应数据不会在代码的其他位置输出。输出缓冲可能会有所帮助 - http://us3.php.net/manual/en/ref.outcontrol.php

【讨论】:

    【解决方案4】:

    也许您可以托管一些应用程序来实现您的设备将数据发送到的侦听套接字?

    您可以使用分隔符或指示消息大小的前缀来组成一些只读协议。这样你就可以只发送你想要的数据,没有任何开销(就像 HTTP 一样)。

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多