Forum: Mikrocontroller und Digitale Elektronik ESP8266: Was nach dem Ende einer HTML-Seite senden?


von Gerd (Gast)


Lesenswert?

Hallo,

zu Beginn einer Anfrage eines Client-Browsers sendet mein 
ESP8266-Server:

HTTP/1.1 200 OK\r\n
Content-type: text/html\r\n
Connection: close\r\n\r\n

Danach wird die HTML-Seite übertragen.

Was muss ich jetzt senden, um dem Client-Browser zu signalisieren, dass 
die Übertragung abgeschlossen ist?

Hintergrund:

Der Server hat ein Timeout  von 30 s, was dazu führt, dass eine neue 
Anfrage diese Zeit abwarten muss, bevor diese bedient wird.

von Florian H. (heeen)


Lesenswert?

Wenn ich mich richtig erinnere sendet man ein Content-Length header mit 
der anzahl bytes payload, dann kann man die Verbindung schliessen.

von Max H. (hartl192)


Lesenswert?

Gerd schrieb:
> Was muss ich jetzt senden, um dem Client-Browser zu signalisieren, dass
> die Übertragung abgeschlossen ist?
1
AT+CIPCLOSE

von Peter II (Gast)


Lesenswert?

Gerd schrieb:
> Was muss ich jetzt senden, um dem Client-Browser zu signalisieren, dass
> die Übertragung abgeschlossen ist?

in dem die Verbindung geschlossen wird. Es gibt kein echtes ende.

> Connection: close\r\n\r\n

Florian H. schrieb:
> Wenn ich mich richtig erinnere sendet man ein Content-Length header mit
> der anzahl bytes payload, dann kann man die Verbindung schliessen.

nicht notwendig bei Connection: Close

von Gerd (Gast)


Lesenswert?

> nicht notwendig bei Connection: Close

Die Verbindung schließe ich nach der Übertragung der HTML-Datei.

Habe jetzt einfach das Timeout runtergesetzt. Geht auch.

von stefan us (Gast)


Lesenswert?

Connection: close forder den Browser dazu auf, nach Empfang der Seite 
die Verbindung zu schließen.

Damit der Browser weiss, wie viele Byte er erwarten soll, sendet der 
Server einen Content-Length header.

Alternativ zum Content-Length Header kann der Server die Verbindung 
schließen.

Bei größeren Datenmengen (z.B. Downloads) sollte man jedoch nicht auf 
den Header verzichten, denn der Browser kann sonst keinen 
Fortschrittsbalken anzeigen.

Außerdem geht ohne den Header der Performance-Vorteil von HTTP 1.1 
gegenüber 1.0 verloren.

von Peter II (Gast)


Lesenswert?

stefan us schrieb:
> Außerdem geht ohne den Header der Performance-Vorteil von HTTP 1.1
> gegenüber 1.0 verloren.

den Vorteil kann man nur nutzen wenn man die Verbindung nicht schließt. 
Der Header bringt kein sinnvollen Vorteil im Bezug auf die 
Geschwindigkeit, er macht es sogar langsamer weil mehr Daten übertragen 
werden müssen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.