【问题标题】:How to request an abbreviated http header如何请求缩写的 http 标头
【发布时间】:2014-03-11 05:38:37
【问题描述】:

我正在使用连接 WiFi 的微控制器。我正在与托管在 Apache 服务器上的 API 进行交互。我在客户端上的 RAM 非常有限。这是一个价值线(读取:便宜)微控制器,只有 4KB 的 RAM。 HTTP 标头有时会单独占用 500 个字节。有效负载只是几十个字节的 JSON。 HTTP头中包含的很多头信息对我来说是无用的,我只需要Content-Length。所以,我在缓冲区上浪费了很多内存,这些缓冲区必须足够大才能容纳所有这些浪费的 HTTP 信息。

有没有办法请求服务器在请求中发送更少的标头内容?

【问题讨论】:

  • Apache 服务器是否在代理您的设备?
  • @DKrueger 我不知道服务器在做什么,但我不知道有代理。
  • 我用过。您的设备正在向 Apache 服务器发送请求,而您无法控制该服务器。我认为你在这种情况下不走运。有什么方法可以即时解析标题?

标签: apache http embedded


【解决方案1】:

您实际上并不需要将整个 HTTP 标头保存在 RAM 中。您应该尝试一次阅读一行。 http 标头字段有一个简单的“key: value\r\n”模式(第一行除外)。 当您收到字节流时,存储所有字符,直到您收到 \r\n 模式。然后解析该行,清除缓冲区并开始接收以下字节。以此类推... 你会发现你真正需要的缓冲区并不是很大。

【讨论】:

    猜你喜欢
    • 2018-11-29
    • 2017-01-03
    • 2017-10-07
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2012-01-06
    • 1970-01-01
    相关资源
    最近更新 更多