funktionsprinzip webserver - http 1.1
-
hi
eine webseite kann ja bekanntlich verweise auf mehrere dokumente enthalten, wie z.b. grafiken etc.
wann 'weiß' eigentlich ein webserver dass so eine webseite komplett übertragen wurde, damit er die verbindung zum client beenden kann?
werden die verweise vom server vorher in einer liste gespeichert und wenn der client eine datei erhält wird der eintrag dann aus der serverliste entfernt ... solange bis sie leer ist, sodass der server dann die verbindung beenden kann oder wie geht das?
-
In aller Regel beendet der Client die Verbindung. Das war wegen irgendwelchen IP/TCP-spezifischen Timeout-Geschichten einfacher.
-
ich versuche nämlich grade nen kleinen webserver zu programmieren. auf meiner webseite, die ich an den browser zurückgeben will, sind rund 250 grafiken.
der firefox hört nicht auf zu laden, obwohl alle bilder angezeigt werden.
oben im firefox browser-tab dreht sich ständig dieser kringel, als wenn der browser auf etwas wartet. ich frage mit nur auf was.
achso und ist es eigentlich normal, das der browser mehrere sockets für eine seite aufmacht? ich registriere nämlich, das es so ist, mindestens 4 sockets macht der firefox auf, um die seite zu laden. ich frag mich bloß ob das so ok ist oder ob bei mir irgendwas blockiert.
jedenfalls will der immer irgendwas laden. mit safari, internet-explorer und opera funzt das gut, die seite wird geladen und gut ist. bloß der firefox will immer irgendwas weiter laden.
-
Wie reagierst du denn auf HTTP/1.0 oder connection: close? Ansonsten wird die Verbindung halt bis zu irgendeinem Timeout offen gehalten. Aber wenn Firefox dir connection: close sendet, solltest du die Verbindung kappen.
-
Der Client weiß ja, welche Dateien er braucht und auch die ruft er ab. Dem Server ist es egal, der liefert nur aus, was gefordert wird. Es gibt ja auch Clients, die einzelne Dateien generell nicht anfordern
-
cooky451 schrieb:
Wie reagierst du denn auf HTTP/1.0 oder connection: close? Ansonsten wird die Verbindung halt bis zu irgendeinem Timeout offen gehalten. Aber wenn Firefox dir connection: close sendet, solltest du die Verbindung kappen.
http 1.0 anfragen werden einfach geschlossen. das ganze soll mal ein spielserver werden, da dürfen die user sich ruhig nen aktuellen browser zulegen.
ich habe den fehler inzwischen gefunden. mein datenpuffer mit der socket info des clients wurde überschrieben, bevor im aufgerufen thread kopiert werden konnte.
damit sind anfragen verloren gegangen und das war der grund warum der browser laden wollte. naja, jetzt erzeuge ich die puffer mit calloc und alles ist gut.
-
t.k.p schrieb:
http 1.0 anfragen werden einfach geschlossen. das ganze soll mal ein spielserver werden, da dürfen die user sich ruhig nen aktuellen browser zulegen.
Nur so aus Interesse.. Spiele über HTTP? Kann ich mir irgendwie schwer vorstellen, was genau planst du da?
-
im prinzip sowas wie scrabble. :p
-
cooky451 schrieb:
t.k.p schrieb:
http 1.0 anfragen werden einfach geschlossen. das ganze soll mal ein spielserver werden, da dürfen die user sich ruhig nen aktuellen browser zulegen.
Nur so aus Interesse.. Spiele über HTTP? Kann ich mir irgendwie schwer vorstellen, was genau planst du da?
Spiele über HTTP ist nicht eigenartig, solange es kein Egoshooter ist wo mehrere dutzende Spieler teilnehmen.
Für triviale Spiele passt es.
-
tcp kein plan schrieb:
der firefox hört nicht auf zu laden, obwohl alle bilder angezeigt werden.
oben im firefox browser-tab dreht sich ständig dieser kringel, als wenn der browser auf etwas wartet.Ich würde darauf tippen, dass du die ContentLength falsch gesetzt hast. So denkt der Browser, irgendwas müsste noch über die Verbindung kommen und zeigt halt den drehenden Kringel an.