Wtm3W5: Seite übertragen....

Ich wollte fragen, was bei einem Seitenaufruf passiert...
nach den ergebnissen, die ich durch Tests herausbekommen habe wird zuerst an den Server etwas in der Form geschickt:

GET / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
Accept-Language: de
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
Host: xxxxxxxxxx (<-- abgeändert)
Connection: Keep-Alive

Dabei würde ich gern wissen wozu was dient.

Dann habe ich einmal Server gespielt und einfach an den Explorer <html>...[inhalt]....</html> geschickt. Dieser hat dann ca 3 min gesucht und dann , bei einem versuch kam die seite beim anderen nicht. Kann mir jemand sagen wie ich eine kürzere Wartezeit als 3 min eistellen kann [Dieser Versuch war von meinem Computer zu meinem Computer

Hs

  1. GET / HTTP/1.1

    Der Request (GET) nach der Seite "/" (Startseite) mittels Protokoll HTTP 1.1

    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

    Das ist, was der Browser an Datenformaten versteht.

    Accept-Language: de

    Die bevorzugte Sprache

    Accept-Encoding: gzip, deflate

    Mögliche Komprimierungsarten der Übertragung

    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)

    Art und Typ des Browsers

    Host: xxxxxxxxxx (<-- abgeändert)

    Naja, wenn du's geändert hast, wirst du wissen, wofür das steht

    Connection: Keep-Alive

    In Verbindung mit HTTP 1.1 die Anweisung, die Verbindung zum Abruf weiterer Ressourcen (z.B. zur Seite gehörende Bilder) offen zu lassen.

    Dann habe ich einmal Server gespielt und einfach an den Explorer <html>...[inhalt]....</html> geschickt. Dieser hat dann ca 3 min gesucht und dann , bei einem versuch kam die seite beim anderen nicht. Kann mir jemand sagen wie ich eine kürzere Wartezeit als 3 min eistellen kann [Dieser Versuch war von meinem Computer zu meinem Computer

    Hättest du RICHTIG Server gespielt, wäre deine Antwort so ausgefallen:
    ----schnipp----
    Content-type: text/html

    <html>
    <head>
    ...
    ----schnapp----

    Du mußt mindestens den Mime-Typ des Inhalts übermitteln. Eine Leerzeile trennt Header vom Inhalt. Du kannst außerdem noch weitere Informationen wie Dateigröße, Gültigkeitsdauer etc. mitsenden. Das macht ein Server normalerweise automatisch, und ein Skript auf dem Server muß es nicht unbedingt tun (macht die Sache nur unnötig aufwendig).

    - Sven Rautenberg

  2. Hi there!

    GET / HTTP/1.1
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*
    Accept-Language: de
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)
    Host: xxxxxxxxxx (<-- abgeändert)
    Connection: Keep-Alive

    Dabei würde ich gern wissen wozu was dient.

    Nun ja, prinzipiell erfaehrst Du, was die ganzen Header bedeuten, in der HTTP-Spec aka RFCxxxx, wobei xxxx sich im Zuge einer Aktualisierung immer mal aendert. Zur Zeit aktuell ist glaube ich RFC2616 (http://rfc.fh-koeln.de/rfc/html_gz/rfc2616.html.gz).

    Die wichtigsten Dinge da oben sind:
    * GET / HTTP1.1: Browser spricht das Protokoll in der Version 1.1 (das sagt etwas darueber aus, was er alles versteht und was der Server ihm demzufolge zumuten kann), und will den Inhalt der Seite "/" haben.
    * Accept-Encoding: gzip, deflate: Der Server darf den Inhalt mit der gzip- oder deflate-Methode komprimieren, um die Bandbreite zu schonen. Der Browser wird das dann vor der Anzeige automatisch wieder auspacken.
    * User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98): Just for info.
    * Host: www.whatever.com: Das ist wichtig. Der Browser sagt dem Server, unter welchem DNS-Name er den Server aufruft. Oft laufen mehrere Webpraesenzen auf demselben Server, dann wird das zur Unterscheidung benoetigt.
    * Connection: Keep-Alive: Nach der Lieferung der angeforderten Seite soll die Verbindung nicht wie ueblich geschlossen werden, sondern der Server sich fuer eine weitere Verbindung bereithalten. (Normalerweise wid fuer jede einzelne URL eine separate Verbindung aufgebaut.)

    Dann habe ich einmal Server gespielt

    Wie das? Hast Du auf Port 80 auf einen Verbindungsaufbau gelauscht?

    und einfach an den Explorer <html>...[inhalt]....</html> geschickt.

    Hast Du vorher auch die noetigen Response-Header geschickt?

    HTH, So long

  3. thx @ll

    Ja ich habe an port 80 abgehorcht

    Ich weiss auch nicht aber mein Problem (das sich inzwischen gelöst hat) lag woanders....

    Für alle die ein ähnliches Problem haben: nachdem die Daten gesendet sind muss die Verbindung geschlossen werden damit der IE das auch anzeigt

    1. Für alle die ein ähnliches Problem haben: nachdem die Daten gesendet
      sind muss die Verbindung geschlossen werden damit der IE das auch
      anzeigt

      http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.10
      http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1