Manuel: Website g-zip'ed an client schicken?

Beitrag lesen

Hallo Manuel,

browser die kein gzip unterstützen bekommen ne fehlermeldung..
alle anderen sollen die webseite eben gezippt bekommen..

Ist Dir klar, daß z.B. Googlebot kein gzip-encoding unterstützt, und Du damit aus Google rausfällst?

naja, google kann alle infos aus der index.html holen :)
aber ich bin nicht auf google angewiesen ;)

WIE gehe ich da vor?
ICH will NICHT auf dem server gzip starten und die seite zippen lassen.. das killt ja jede performance..

Am einfachsten ist am Anfang der Seite:
<?    ob_start("ob_gzhandler"); ?>
und am Ende:
<? ob_end_flush(); ?>

ich muss sagen, php überrascht mich immer wieder *g*
klasse :)

Damit bekommen alle, die gzip akzeptieren, die Seite komprimiert, der Rest normal, aber das ist doch eigentlich die bessere Lösung, statt eine Fehlermeldung zu produzieren, oder?

das hat einen gewissen hintergrund..
ich schreibe ein massive multiplayer onlinegame auf webbrowser basis (ja, wo es schon viele viele gibt, drum muss nen neues spielprinzip her :) )
was ich verhindern möchte ist die steuerung durch scripte dritter..
zum einen mache ich das mittels einer zufälligen zahl die als bild dargestellt wird und die eingegeben werden muss..
also bräuchte das steuernde script ocr-fähigkeit :)

gzip möchte ich einerseits zum reduzieren des traffic's, andererseits bedeutet es mehr rechenleistung für die scripte den content erst zu dekomprimieren..
wer galaxywars.de kennt:
dort kann man flotten verschicken um andere anzugreifen und somit rohstoffe zu erbeuten..
ich habe dazu scripte geschrieben die in kürzester zeit 100e flotten versenden, viel schneller als man das über die formulare von galaxywars könnte..
aber das benötigt schon so sehr viel performance, da die perlscripte je nach anzahl der flottenaufträge durchaus einige stunden laufen können..
da kommt auch schonmal bei 1&1 das nette cgi-limit reached :)
wenn ich die pages vorher noch dekomprimieren müsste hätte ich dieses limit schon viel früher..

Natürlich führt das dazu, daß bei jedem Seitenaufruf das Resultat einmal durch den gzip-Algorithmus geschickt wird, aber meistens läßt sich das nicht umgehen (PHP-Seiten dienen ja oft auch dazu, daß nicht jeder User die gleiche Seite bekommt, also z.B. an Urls angehängte Session-Ids, da wäre vorheriges zippen sowieso unmöglich). Außerdem ist die Performance-Einbuße minimal, zumindest nach meiner Erfahrung - eine PHP-Seite ist sowieso schon durch den PHP-Prozessor gelaufen, hat ein oder mehrere Male eine Datenbank abgefragt, usw., da ist die zusätzliche Zeit für das zippen vernachlässigbar. Und 1&1 hostet ja nicht auf einem C64 ;-).

nunja, ob die zeit so vernachlässigbar ist muss ich testen..
es kommt ja ne sehr hohe belastung auf den server zu und ichmöchte ihn nicht unnötig stark verlangsamen..

dankeschön für die infos :)

mfG
Manuel