Forum: Mikrocontroller und Digitale Elektronik Mal wieder Web Server


von Thomas (Gast)


Lesenswert?

Hallo,
bin inzwischen mit meinem EasyTCP und ATMEGA162 soweit gekommen daß ich
eine TCP Verbindung aufbauen kann und Daten empfangen kann.
Ich teste das erfolgreich mit einem TCP Testprogramm. Wenn ich nun mit
dem Internet Explorer auf meinen Webserver zugreife, so empfange ich
"Get /HHTP...." und antworte darauf mit "<html><body><p><i>Hallo
Welt!!!</i></font></p></body></html>". Leider zeigt mein Explorer
immer an daß er diese Seite nicht öffnen kann. Wenn ich genau diesen
Text in eine Datei "test.htm" einklebe und diese öffne so funzt es.
Was fehlt da das mein Web Server nicht schickt?? Ist bestimmt nur eine
Kleinigkeit, ich bekomm es aber nicht gebacken.
Vorab danke für eure Hilfe.

Gruß

Thomas

von Sebastian (Gast)


Lesenswert?

ich würde mal vermuten, daß dein browser nicht weiß dass es sich um eine
html datei handelt.
da war doch was das sich "header" nannte oder??

von Ulrich Radig (Gast)


Lesenswert?

Hallo,

Die Verbindung muß auch wieder geschlossen werden :-)

Mfg Ulrich

von Thomas (Gast)


Lesenswert?

Guten Morgen,
danke erst mal für die Vorschläge, werde ich ausprobieren. Wieso sollte
mein Explorer nicht wissen daß es HTML ist? Wenn ich das gleiche in
einer HTM Datei öffne hab ich auch keinen Header und er zeigts an.
@Ulrich: Ich werde nach dem Text mal abkneifen und sehen was passiert.
Habe aber erst heute abend Zeit. Ist es so daß der Client die
Verbindung aufbaut und der Server wieder schließt?

Melde mich dann wieder.

Gruß

Thomas

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

AFAIK können beide die Verbindung abbauen. Aber typischerweise baut der
die Verbindung ab der sie auch aufgebaut hat. Ich würde evtl. auf ein
fehlendes CR/LF oder sowas tippen.

Matthias

von Kai Markus T. (kmt)


Lesenswert?

Versuch mal, mit z.B. Ethereal den Datenverkehr zwischen Server und
Client abzuhorchen. Das könnte schon weiterbringen.

Greetz
KMT

von Thorsten Neumann (Gast)


Lesenswert?

Hallo,
bei der Kommunikation zwischen Browser und Webserver wird ein wenig
mehr an Informationen ausgetauscht als nur die gewünschte Webseite und
der HTML-Code.

Beginnen wir bei der Anfrage des Clients:

GET http://sleeper/AspHeute/SortedList/iterateforeach.aspx HTTP/1.0
Accept: */*
Referer: http://sleeper/AspHeute/SortedList/
Accept-Language: en-us
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461;
.NET CLR 1.0.3705)
Host: sleeper
Pragma: no-cache

Da der Browser neu geöffnet war, und ich keine andere Seite auf diesem
Server vorher angesurft hatte, wird kein Cookie an den Server
geschickt. Dafür aber erfährt der Server von uns, welchen Browser wir
verwenden, welche Sprachen von uns akzeptiert werden, und auch woher
wir kommen Und natürlich ist die erste Information wie die Seite
angefragt wird: GET oder POST.

Die Antwort des Servers ist zweigeteilt - und zwar durch eine
Leerzeile. Der erste Teil sind die Header der Antwort, nach der
Leerzeile folgt der eigentliche Content:

HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Mon, 04 Mar 2002 20:47:58 GMT
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 122

ASP.NET - aspDEdotnet@aspfriends.com<br>
C# - dotnetDEcsharp@aspfriends.com<br>
VB.NET - dotnetDEvb@aspfriends.com<br>

gruß
Thorsten

Quelle: "Mitlauschen bei der Browser-Webserver Kommunikation",
http://www.aspheute.com/artikel/20020305.htm

von Thomas (Gast)


Lesenswert?

Hallo alle,
danke für die zahlreichen Antworten. Ein erster Test zeigt daß Ulrich
auf dem richtigen Dampfer war. Wenn ich die Verbindung nach dem Text im
Server abkneife so bekomme ich mein "Hallo Welt".
Die anderen Beiträge sehe ich mir in Ruhe an und werde das eine oder
andere daraus noch extrahieren und nutzen.
Eine weitere Hürde ist erstmal genommen.
DANKE!!

Gruß an alle

Thomas

von Thomas S. (tstuetz)


Lesenswert?

Du solltest dir auch mal die RFC 2068 und 2616 anschauen
(evtl RFC822). RFC=Request for comments, offener Standart für alles was
im Netzwerk abläuft, also auch die Übertragunng einer HTML-Seite per
HTTP. Download bei http://www.rfc-editor.org/rfc.html

Außerdem sind es 2x CR+LF die das Ende des Headers anzeigen. Und zum
Schluß, im Antwort-Header wird "Date:" und "cache-control" nicht
unbedingt benötigt. Was der Browser aber brauchen kann
ist die "Content-length" (Größe der Seite in Bytes).

Gruss

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.