2012-08-23 11 views

Antwort

33

Wenn Sie einfach die Kopfzeile Connection: keep-alive setzen, wird es nicht genug sein. Der Client wird denken, dass es sich um eine Keep-Alive-Verbindung handelt, aber der Server kann entscheiden, die Verbindung zu schließen. Darüber hinaus weiß der Client nicht, wie viele Anforderungen über die Keep-Alive-Verbindung bedient werden können. Es gibt einen zusätzlichen Header, der verwendet wird, Anfragen über eine Keep-Alive-Verbindung, die wie folgt aussieht geschickt zu verfolgen:

Keep-Alive: timeout=15, max=100 

die den Kunden sagt, dass es auf der aktuellen Keep-Alive-Verbindung auf 100 mehr Anfragen senden kann (und es zählt herunter, während Sie die Keep-Alive-Verbindung weiterhin verwenden, und dass der Client 15 Sekunden Zeit hat, zusätzliche Anforderungen zu stellen, bevor die Verbindung geschlossen wird.

Die einfache Verwendung der Kopfzeile reicht nicht aus, um eine Keep Alive-Verbindung herzustellen, da der Server sie aushandeln muss. Beide Enden müssen über den Keep-Alive wissen, und beide Enden müssen korrekte Buchhaltung machen. Sie müssen dem Apache sagen, dass er Keep-Alive an seinem Ende behandeln soll und das Senden der Header wird das nicht tun. Sie müssen die zweite Richtlinie zur Verwendung von Keep-Alive machen:

KeepAlive on 

Und zusätzlich können Sie die Keep-Alive-Mechanismus mit Richtlinien zwicken wie:

KeepAliveTimeout 15 
MaxKeepAliveRequests 100 
+0

Dank @ Jon Lin, die eine super klar ist, gut geschriebene Antwort! Ich wünsche Ihnen einen schönen Tag, ich werde meine Serveradministratoren kontaktieren. – Sam

+1

Auf Shared-Hosting ist die Verwendung von KeepAlive oft nicht erlaubt: beim Einfügen in .htaccess sagt der Server 'Fehler aufgetreten: 500 - interner Serverfehler' :(:(:( – Sam

+1

' Header set Connection keep -alive 'arbeitete für mich auf meinem geteilten Hosting Quelle: http://www.feedthebot.com/pagespeed/keep-alive.html – retrovertigo