【问题标题】:how much of data usage a http post request?http post请求的数据使用量是多少?
【发布时间】:2014-05-18 20:17:50
【问题描述】:

我正在为 android 编写一个应用程序,在应用程序中我使用了一些 HttpPost 请求。 我有一项服务,我在固定时间安排 3 个请求。 每 1.5 秒一次,每 7 秒一次,每 20 秒一次。 大多数时候网络服务不返回任何东西。

我在设备上安装了我的应用程序并检查了 2 天。这个应用程序使用 40M 数据虽然 viber 只使用 4M 。 (我通过检查设备设置中的数据使用部分找到它。)

一个简单的HttpPost 请求使用了多少数据?

如何减少应用中的数据使用量?

【问题讨论】:

  • 几乎什么都没有...您应该查看您发送的内容(参数),也许您可​​以优化它?
  • 你能在服务器上工作吗?
  • 我无法向设备发送任何内容。例如,您假设这个应用程序是一个聊天应用程序,所以我应该每 1.5 秒检查一次以发现该用户是否有@@y 消息。

标签: android http-post high-traffic


【解决方案1】:

嗯,唯一能知道任何 POST 请求费用的人是您。这在很大程度上取决于您发送的标头/数据。

HTTP 在发送的数据中引入了一些开销。例如,使用 cURL 只发布一对值 p1=v1 和 p2=v2,这些是发送的标头:

POST / HTTP/1.1
User-Agent: curl/7.35.0
Host: localhost
Accept: */*
Content-Length: 11
Content-Type: application/x-www-form-urlencoded

这些只是标题(正文为此添加了 11 个字节)。您可以猜到,每 1.5 秒执行一次此操作会产生大量流量。

为了减少这种情况,你可以做一些事情:

  • 降低对服务器的请求率。您真的需要每 1.5 秒发布一次吗?
  • 如果您发布大量数据,请检查 HttpPost 是否允许您压缩您发送的数据/服务器是否支持 HTTP 压缩;
  • 考虑使用其他技术,如普通套接字/websockets。如果您发布的数据很小,这将有助于减少 HTTP 的开销。

编辑:我假设您正在使用 POST 请求将数据真正发布到服务器。如果您使用它从服务器获取某种状态,则(Web)套接字或使用推送通知之类的东西可以大大减少所需的请求。

【讨论】:

  • 我在问题下方的评论中解释了我的想法,即每 1.5 秒使用一次 httpPost。您可以假设这是一个聊天应用程序,我应该每 1.5 秒检查一次用户是否有任何新消息,如果有消息,网络服务器会将它们作为请求响应返回。
  • 如果你可以控制服务器,就像我说的那样,Websockets 或服务器发送的事件应该比这更好。这使您可以避免 HTTP 带来的大部分开销,并且还可以让您从服务器到设备进行通信(因此,如果有新消息,则无需每 1.5 秒检查一次:当您有新消息时,您可以将其发送到正确的设备)
  • 如果你不控制服务器,那么你将不得不优化你所能做的。但请注意,您应该始终能够在移动应用程序和当前服务器之间添加由您控制的第二台服务器,并在那里使用您需要的任何技术。
  • 我不知道服务器如何与设备没有有效IP的设备通信?是否有 q 包可以帮助我实现这一目标?
  • 设备打开连接并保持打开状态。然后服务器和客户端都可以读/写它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-25
  • 2020-04-28
  • 2013-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
相关资源
最近更新 更多