Skip to content

server.send() fails to send STRINGS/HTML greater than 6600~ byte long #3205

@horendus

Description

@horendus

Basic Infos

Hardware

Hardware: ESP-12MOD
Core Version: 2.3.0

Description

Problem description

Settings in IDE

Module: NODEMCU
Flash Size: 4MB
CPU Frequency: 120Mhz
Flash Mode: GIO
Flash Frequency: 40Mhz
Upload Using: SERIAL
Reset Method: nodemcu

I'm finding that the ESP8266 is unable to send STRINGS (making up a HTML web page) greater than
around 6600 Bytes.

This is the command I am using to send the STRING. server.send ( 200, "text/html", WebPage_HTML())
(WebPage_HTML() Returns the STRING)

I know the function is generating a perfect string because I have checked over the return value in the serial console windows.

Once I trim the STRING/HTML down to less than 6600byte it is received by the web browser however going any higher I have very random results in the form of strange characters showing up in the top left of my browser window and MISSING HTML code (checking webpage SOURCE)

Is this a known limit to how big the string can be for sending to the client machine?**

What is the suggested strategy to get around this and is this a documented problem?

I have tried changing the HTTP_DOWNLOAD_UNIT_SIZE to 8000. This makes the page load VERY FAST but doesn't effect the 6600~byte limit, a nice speed boost though (maybe putting it out of spec with norms/conventions...)

I assumed the the only limit would be the RAM needed for the string manipulations before sending the STRING to the server.send () command however this doesn't appear to be the case as I have plenty of free RAM and im not getting a MCU crash.

Is this a known limitation?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions