android - HTTP 服务器实现 : Mobile web browsers (e. g。 Android标准)停止加载页面资源

标签 android c http mobile embedded

我为一个嵌入式项目编写了一个小型 Web 服务器,该项目应该为设备提供基于 Web 的 UI。虽然使用 PC 浏览器一切正常,但移动浏览器无法加载与页面关联的所有资源(例如 css/js/图像)。

我的服务器支持不带请求流水线的持久连接。目前我已将最大并行连接数减少到 1,因此一次只响应一个请求。

我的调试观察是,客户端在首先请求 *.html 文件然后是样​​式表之后,停止请求 header 中列出的任何其他资源。客户端不会断开连接。

您是否知道我可能会犯什么样的错误,PC 浏览器可以容忍而移动浏览器不能容忍?

我刚在网上看到大多数移动浏览器实际上实现和使用流水线。进一步考虑,我认为我当前的实现可能无法处理流水线请求。考虑到我的 STM32 内存不足,我将接收缓冲区重用为发送缓冲区。我会尽快验证...

...不,不管怎么说>>> here <<<,我无法验证适用于 Android 的 Android 标准浏览器、Dolphin 或 Firefox 是否真的在“保持 Activity ”连接上传输它们的请求。

还有一件事......当从 Android SDK 运行模拟器时它工作得很好(至少对于 Android 4.2.2)

请评论您可能需要的任何其他信息。

最佳答案

要在目标平台上节省内存资源,请尝试压缩 H​​TML、javascript 等。我建议您尝试使用 gzip HTTP compression .对于图像,请尝试使用或制作 .svg(可缩放 vector 图形)图像。然后您还可以压缩 SVG 图像。

关于android - HTTP 服务器实现 : Mobile web browsers (e. g。 Android标准)停止加载页面资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17680619/

相关文章:

java - 确定 Executors.newSingleThreadExecutor().execute 创建的线程数?

android - 谷歌地图 Activity 异常?

java - SQLite 中的数据在应用程序更新时丢失

swift - 如何使用 Alamofire 上传图片并在参数中引用文件

android - Android 中的作业管理器

c - 为什么 --x; work and x-- 在递归代码中给出段错误

c - 如何在 linux 终端上用 C 打印这段代码中的所有字符?

c - 无法解决 Valgrind 给出的未初始化值错误

python - 执行内容协商的模拟 HTTP 服务器

java - 除了超时或 session.invalidate() 以外,JSP Web session 被重置的原因是什么?