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.
Wenn ich mich richtig erinnere sendet man ein Content-Length header mit der anzahl bytes payload, dann kann man die Verbindung schliessen.
Gerd schrieb: > Was muss ich jetzt senden, um dem Client-Browser zu signalisieren, dass > die Übertragung abgeschlossen ist?
1 | AT+CIPCLOSE |
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
> nicht notwendig bei Connection: Close
Die Verbindung schließe ich nach der Übertragung der HTML-Datei.
Habe jetzt einfach das Timeout runtergesetzt. Geht auch.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.