Harald Veigl: Apache: BrowserMatch: force-response-1.0: keine Reaktion

Hi!

Ich hab einen WebServer (Solaris, Apache), der mir wenn geht HTTP 1.1
an die browser schickt.
Beim IE ist die Anzahl der Verbindungen bei http 1.1 aber per default auf 2 limitiert (bei http 1.0 sind's 4).
Desshalb will ich meinem Apache sagen das er allen IE's nur mehr http 1.0 antwortet, weil ich es niemandem zumuten möchte bei seinem browser herumzupfuschen nur um meine seite in akzeptabler geschwindigkeit geniessen zu können.

Ich hab in der httpd.conf mittlerweile schon folgendes eingetragen:
<IfModule mod_setenvif.c>
    BrowserMatch "MSIE 5.5;"  force-response-1.0
    BrowserMatch "MSIE 6.0;"  force-response-1.0
    BrowserMatch "MSIE"  force-response-1.0
    BrowserMatch "Mozilla" force-response-1.0

BrowserMatch "RealPlayer 4.0" force-response-1.0
    BrowserMatch "Java/1.0" force-response-1.0
    BrowserMatch "JDK/1.0" force-response-1.0
</IfModule>

Allerdings hat das irgendwie keinen Effekt, ich krieg meine daten noch immer mit http 1.1 und somit ziemlich langsam über die leitung.

Hab ich bei den Einträgen irgendwas falsch?
Kann mir da jemand helfen?

lg harald

PS: das geschwindigkeitsproblem liegt ganz sicher am http 1.1, folgende gründe sprechen dafür:

  1. der webserver ist eine SUN Fire-280R auf der ausser dem webserver nix läuft
  2. ich hab eine 1 MBit anbindung ins Internet
  3. wenn ich http 1.1 im IE ausschalte lädt die seite so schnell das ich fast garnicht mit dem schauen mitkomme!!!
  4. Und ja, das modul ist geladen!
  1. Hi,

    Beim IE ist die Anzahl der Verbindungen bei http 1.1 aber per default auf 2 limitiert (bei http 1.0 sind's 4).

    vielleicht täusche ich mich ja; aber nach meinem Kenntnisstand limitiert HTTP/1.1 (nicht der IE, sondern das Protokoll) die Zahl gleichzeitiger Connections pro Host auf 4, während HTTP/1.0 kein Limit kennt.

    Desshalb will ich meinem Apache sagen das er allen IE's nur mehr http 1.0 antwortet, weil ich es niemandem zumuten möchte bei seinem browser herumzupfuschen nur um meine seite in akzeptabler geschwindigkeit geniessen zu können.

    Es ist der Client, der die Protokoll-Version wählt. Die Antwort des Servers bringt höchstens dann etwas, wenn der IE alle folgenden Requests automatisch auf 1.0 zurückstuft, was er m.W. nicht tut. Vorher kann er schließlich nicht ahnen, was der Server ihm zu bieten in der Lage bzw. gewillt ist.

    Allerdings hat das irgendwie keinen Effekt,

    Richtig.

    Hab ich bei den Einträgen irgendwas falsch?

    Ja: Sie sind da. Eine Serverkonfiguration ist hier effektfrei - es sind die Clients, die umkonfiguriert werden müssten.

    Kann mir da jemand helfen?

    Sorge für weniger notwendige Requests pro Dokument. Hierbei hilft günstiges Caching, ggf. ein Preload und - vor allem - eine Reduktion eingebundener Objekte auf ein sinnvolles Maß. Wenn der Zustand unerträglich und unveränderlich ist, verteile die Objekte auf unterschiedliche Hosts; wobei Du Dir eventueller Sicherheitsmechanismen wie z.B. der Same Origin Policy bewusst sein solltest.

    PS: das geschwindigkeitsproblem liegt ganz sicher am http 1.1,

    Nein, die Zahl der zeitgleichen Roundtrips. Welche zugegebenermaßen durch das Protokoll begrenzt wird :-)

    Cheatah

    1. Hi,

      Hi auch dir, danke für deine Antwort°

      vielleicht täusche ich mich ja; aber nach meinem Kenntnisstand limitiert HTTP/1.1 (nicht der IE, sondern das Protokoll) die Zahl gleichzeitiger Connections pro Host auf 4, während HTTP/1.0 kein Limit kennt.

      Ich glaube da täuscht du dich, die limitierung auf 2 Connections ist nur eine Empfehlung des w3c (deprimierend ist das sich gerade der IE in diesem fall nicht nur an einen standard hält, sondern in ihm sogar empfehlungen realisiert sind).

      Das der IE die Verbindungen beschränk lässt sich dadurch beweisen das man die Beschränkung verändern kann.
      Wenn man nämlich in der registry die Anzahl der Verbindungen für HTTP 1.1 auf 4 erhöht, lädt die Seite fast noch schneller als mit 1.0.

      für etwaige tests:
      [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
      "MaxConnectionsPerServer"=dword:00000004
      "MaxConnectionsPer1_0Server"=dword:00000004

      ... damit werden die Verbindungen für beide Protokolle auf 4 eigestellt.

      Es ist der Client, der die Protokoll-Version wählt. Die Antwort des Servers bringt höchstens dann etwas, wenn der IE alle folgenden Requests automatisch auf 1.0 zurückstuft, was er m.W. nicht tut. Vorher kann er schließlich nicht ahnen, was der Server ihm zu bieten in der Lage bzw. gewillt ist.

      warum kann ich dann die force-response option in der apache conf überhaupt setzen, wenn sie sowieso ignoriert wird?

      Sorge für weniger notwendige Requests pro Dokument. Hierbei hilft günstiges Caching, ggf. ein Preload und - vor allem - eine Reduktion eingebundener Objekte auf ein sinnvolles Maß. Wenn der Zustand unerträglich und unveränderlich ist, verteile die Objekte auf unterschiedliche Hosts; wobei Du Dir eventueller Sicherheitsmechanismen wie z.B. der Same Origin Policy bewusst sein solltest.

      dazu hab ich sowohl keine lust als auch keine zeit, meine seiten sind haben angenehme ladezeiten wenn ich im browser http 1.1 deaktiviere.
      Ich will einfach nur den alten zustand, das wäre dann der grösste nutzen mit dem geringsten aufwand.

      lg harald