PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Website Boost mit HTTP/1.1 (aka SPDY)


bl0bb
19.03.2013, 21:53
Bisher ist SPDY (https://developers.google.com/speed/spdy/) eher wenig verbreitet.
In der deutschen und internationalen Trackerlandschaft habe ich es erst bei 2 deutschen Trackern gesehen.
Auch andere Webseiten unterstützen es bisher fast gar nicht.

Dies finde ich eigentlich recht schade, daher möchte ich darüber ein paar Worte verlieren.

Also einfach mal lesen und testen, eure User wird es freuen ;)


Was ist SPDY?

SPDY (https://developers.google.com/speed/spdy/) ist ein von Google entwickeltes TCP basiertes Netzwerkprotokoll, welches das bisherige HTTP/1.0 erweitert.
Durch das Multiplexen bei der Datenübertragung, können beliebig viele Dokumente über eine einzelne TCP Verbindung parallel übertragen werden.
Damit wird der Seitenaufbau rasant beschleunigt (+100% und mehr). Nice :)

OK, wer Multiplexen nicht versteht:
Nehmt einfach eine Seite die viele Bilder enthält (z.B. die browse.php mit den ganzen Kategorie-Icons, falls diese nicht gerade in einem Sprite stecken). Es werden alle Bilder gleichzeitig heruntergeladen, anstatt wie bei HTTP/1.0 Stück für Stück.
Dies gilt natürlich auch für .js oder .css Dateien.

Der Download aller angeforderten Ressourcen erfolgt gleichzeitig. Das spart natürlich die ganzen Locks während des Aufbaus, was sich wirklich bemerkbar macht.


Wie sieht es mit der Unterstützung aus?

Alle modernen Browser unterstützen SPDY (https://developers.google.com/speed/spdy/).
Falls nicht ist es auch nicht so schlimm. Kommt ein Browser nicht mit HTTP/1.1 klar, erfolgt ein Fallback auf HTTP/1.0 und der User kann wie gewohnt weiter auf der Seite surfen.

SPDY (https://developers.google.com/speed/spdy/) funktioniert nur mit einer SSL Verbindung!


Wie stelle ich SPDY zur Verfügung?

Dafür muss man natürlich etwas tun, aber der Aufwand hält sich in Grenzen.

[Befehle für Debian Squeeze]


SPDY (https://developers.google.com/speed/spdy/) benötigt OpenSSL 1.0.1+
Daher einfach die aktuellste Stable kompilieren: OpenSSL Sources (http://www.openssl.org/source/)

wget http://www.openssl.org/source/openssl-1.0.1e.tar.gz
tar -xzf openssl-1.0.1e.tar.gz
cd openssl-1.0.1e
./config --prefix=/usr zlib-dynamic --openssldir=/etc/ssl shared
make
make test
make install


Beispiel nginx

Eine aktuelle Installationsanleitung findet man hier (http://nginx.org/patches/spdy/README.txt). Diese ändert sich auch mit jeder neuen nginx Version (Patch Parameter, ./configure options).
Das SPDY (https://developers.google.com/speed/spdy/) Update erfolgt zeitnah zum neuen nginx Release.

wget http://nginx.org/download/nginx-1.3.14.tar.gz #nginx source laden
tar -xzf nginx-1.3.14.tar.gz #entpacken
cd nginx-1.3.14 #ins nginx Verzeichnis wechseln
wget http://nginx.org/patches/spdy/patch.spdy.txt #spdy patch laden
patch -p1 < patch.spdy.txt #patchen
./configure --with-http_ssl_module --with-http_spdy_module #nginx konfigurieren
make && make install #nginx kompilieren und installieren

Natürlich kann das ./configure auch noch andere options enthalten. Wichtig ist nur das --with-http_ssl_module und --with-http_spdy_module ergänzt werden.

Ist nginx installiert muss der server Block erweitert werden:

server {
listen 443 ssl spdy;
...
}


Und schon ist SPDY für diesen Server aktiviert.

Optionale Konfigurationsmöglichkeiten für den http/server Block stehen hier (http://nginx.org/patches/spdy/README.txt) (weiter unten). Die Defaultwerte sind allerdings völlig ausreichend.


alle SPDY Patches (http://nginx.org/patches/spdy/)


Beispiel Apache

cd /tmp #ins tmp Verzeichnis wechseln
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_amd64.deb #mod_spdy für 64bit laden
wget https://dl-ssl.google.com/dl/linux/direct/mod-spdy-beta_current_i386.deb #mod_spdy für 32bit laden
apt-get install apache2 #Apache installieren
a2enmod ssl #SSL aktivieren
dpkg -i mod-spdy-*.deb
apt-get -f install #mod_spdy installieren
/etc/init.d/apache2 restart #Apache Restart

Die SPDY Config findet man in /etc/apache2/mods-available/spdy.conf, aber auch hier sind die Default Werte völlig ausreichend.

Fertig.


mod_spdy Binaries (https://developers.google.com/speed/spdy/mod_spdy/)
mod_spdy Konfiguration (https://developers.google.com/speed/spdy/mod_spdy/install)


Und funktioniert es?

Einfach einen SPDY (https://developers.google.com/speed/spdy/)-fähigen Browser nehmen:
Chrome - Addon "SPDY indicator"
Firefox - Addon "SPDY indicator"
Opera - Addon "SPDY indicator"


Also testet es ruhig mal aus ;)


Viel Spaß

Thunder™
19.03.2013, 21:59
klingt Interessant..

bl0bb
19.03.2013, 22:02
Ist es auch, sonst hätte ich es nicht erwähnt ;)

Habe die Entwicklung kurz nach Anfang selber aus den Augen verloren und es auch vergessen. Bin vor ein paar Monaten wieder drüber gestolpert, und da jetzt der Browsersuppert bei etwa 50% liegt, lohnt es sich wirklich drüber nachzudenken (bzw. meine Seiten laufen alle mit SPDY *gg*).

Thunder™
19.03.2013, 22:06
Ich hab ehrlich gesagt so schon genug um die Ohren aber ich will mir das gerne mal auf´s Auge drücken..

Für solche Sachen bin ich immer gerne zu haben...;)

bl0bb
19.03.2013, 22:11
Naja, wenn man seinen Webserver eh selber unter Kontrolle hat und auch regelmäßig wartet, beträgt der zusätzliche Aufwand ~1 Minute ;)

Thunder™
19.03.2013, 22:15
Ich kann mir gerade nicht wirklich vorstellen um wie viel eine Webseite schneller werden soll..

Es rennt ja schon ziemlich Hammer mit Proxy und so..und das ganze dann noch schneller...:D..klingt fast zu verlockend^^

bl0bb
19.03.2013, 22:30
https://ist-spdy-aktiviert.de/ und dann auf "Härtetest"

Zero111
19.03.2013, 23:57
wenn ich das ganze richtig gelesen haben muss man nginx neukompilieren.. oder gibt es eine möglichkeit das ganze nachträglich aufzurüsten?

Thunder™
20.03.2013, 00:21
ich glaube um neu kompilieren wird man nicht herum kommen....ich lass mich aber gerne eines besseren belehren wenn jemand nen tipp hat..

bl0bb
20.03.2013, 05:41
Muss neu kompiliert werden, da ja einige Sourcedateien durch den Patch verändert werden.

ike
20.03.2013, 09:08
https://ist-spdy-aktiviert.de/ und dann auf "Härtetest"

In Firefox (19.0.2) ist der Test bei mir mit SPDY zu 90% um 0.2 bis 0.5 Sekunden langsamer als ohne.

In Chrome hingegen ist es genau andersrum.

Hier mal die deutlichsten Ergebnisse.


Firefox:

http://info-panel.net//test/upload/5819449592firefox.png

Chrome:

http://info-panel.net//test/upload/8482955205chrome.png

Flori12345
20.03.2013, 09:33
ich hab ff20 da is es genauso

bl0bb
20.03.2013, 09:48
Naja Leute, das liegt nicht am FF (siehe meinen Anhang, ebenfalls FF 19.0.2).

Die oben gesehenen Diskrepanzen können verschiedene Ursachen (Client und Serverseitig) haben. Ich tippe mal darauf, dass der Server zu dem Zeitpunkt gelaggt hat, oder es sonstige bottleneck Effekte gab.

SPDY ist jedenfalls schneller als TLS HTTP/1.0, und sollte in etwa gleich sein mit HTTP/1.0. Und da SPDY nur mit einer TLS Verbindung funktioniert... ;)

Aber auch mit SPDY muss man an der Serverkonfig drehen, um ein optimales Ergebnis zu erzielen. Auch wenn es ohne Optimierung schon eine Verbesserung gibt.

ike
20.03.2013, 11:01
Das kann schon sein. Ich werds heut abend mal mit nginx ausprobieren, wenn das wirklich so funktioniert wie es sich anhört wäre es super. Dann gehören lästige Image-Sprites hoffentlich bald der Vergangenheit an.

Zero111
31.03.2013, 04:16
nginx 1.3.15 supportet spdy von haus aus :) funzt super

Feudas
31.03.2013, 18:08
Irgendwie ist das zeug doch bescheuert oder?
Was bringt den sowas wenn es derart unzuverlässig daher kommt?

meine Ergebnisse, alle auf dem selben System gemacht Win7 64 mit 50k Anbindung über telekom:

FF: ohne SPDY: 1.103s mit SPDY: 0.315s
IE: ohne SPDY: 1.103s mit SPDY: nicht unterstüzt
OP: ohne SPDY: 0.047s mit SPDY: 0.104s
CN: ohne SPDY: 1.519s mit SPDY: 0.426s

OP = Opera und CN = CoolNovo ehemals ChromePlus

Das Opera mein Lieblingsbrowser ist scheint sich also auszuzahlen ;)

hawk
31.03.2013, 19:50
supi sache das mitm spdy , also ich bemerke egal in welchem browser den Unterschied :D

MFG Hawk

BonkeR
02.04.2013, 16:02
Vor gut zwei Wochen ist die erste lauffähige Version von Windows "Blue" (Codename) ins Netz gelangt, seither entdecken Nutzer immer neue Informationen zum bisher geheimnisvollen Feature-Update. Nun kommt eine weitere Entdeckung dazu.

Und zwar hat der bekannte Windows-Blogger 'Rafael Rivera' herausgefunden, dass Windows "Blue" sowie Internetexplorer 11 das SPDY-Protokoll unterstützen werden. Bei SPDY (vom englischen "speedy", also "flott"; wird auch so ausgesprochen) handelt es sich um ein noch experimentelles auf TCP basierendes Protokoll, das höhere Geschwindigkeiten der Datenübertragung bietet, dabei aber bestehende Netz-Infrastruktur verwendet.

Allzu viele Details nennen Rivera und Paul Thurrott, die gemeinsam (und parallel) derzeit eine Artikel-Serie zu Windows "Blue" durchführen, zwar nicht, doch auch der Microsoft-Experte Thurrott schreibt auf seiner 'Winsupersite', dass er SPDY-Unterstützung "bestätigen" könne.

Rivera schreibt, dass er zu SPDY nicht viel sagen könne (dürfe?) und die Funktionsweise im Internet Explorer 11 auch nicht demonstrieren könne. Allerdings sei SPDY laut Rivera "auf Betriebssystem-Ebene" über Zusätze zur Windows-Internet-API implementiert worden. Das bedeutet, dass dies nicht nur beim IE11 funktionieren wird, sondern bei allen Windows-8-"Blue"-Apps, die eine Internet-Verbindung benötigen.


In diesem Zusammenhang sollte erwähnt werden, dass SPDY von Konkurrent Google entwickelt worden ist bzw. wird, zuletzt haben die Spannungen zwischen Redmond und Mountain View zugenommen, wobei von Harmonie zwischen Microsoft und Google ohnehin noch nie die Rede sein konnte.

SPDY, das derzeit für den Standardisierungs- bzw. Zertifizierungsprozess vorbereitet wird, soll minimale Latenz ermöglichen und die Ladezeiten von Webseiten um bis zu 64 Prozent verringern. Weitere Details dazu sind auf der Seite der 'Chromium Projects' zu finden.

Originalbeitrag und Bilderstrecke hier : Windows 'Blue' & IE11 wohl mit SPDY-Unterstützung - WinFuture.de (http://winfuture.de/news,75388.html?utm_source=Facebook&utm_medium=AutomatedWallPost&utm_campaign=SocialMedia)

Thunder™
02.04.2013, 18:03
so viel heiße Luft und Gerüchte Küche für ein paar lächerliche Millisekunden.. xD

ike
03.04.2013, 05:23
so viel heiße Luft und Gerüchte Küche für ein paar lächerliche Millisekunden.. xD

Wenn ich dafür auf Sprites verzichten kann ist das schon ein großer Vorteil wie ich finde...


Hier gibts ein Indicator für Firefox: SPDY indicator :: Add-ons für Firefox (https://addons.mozilla.org/de/firefox/addon/spdy-indicator/)

Ich habs gestern mal installiert, zusammen mit Nginx 1.3.14. In Firefox und Chrome funktioniert alles wie es soll doch in Opera in Version 12.14 macht jedoch macken. So funktionieren JQuerys POST Befehle aus mir unerklärlichen Gründen nicht (gleiche TLD, JQuerys error Funktion gibt leern String aus, Fehlerconsole bleibt leer), GET funktioniert hingegen problemlos.

Trotzdem merkt man gerade bei vielen kleinen Bildern einen deutlichen Geschwindigkeitszuwachs, jedoch auch nur beim ersten Aufruf. Liegen die Daten ersteinmal im Cache des Browsers gibt es fast keinen spürbaren Unterschied mehr.

bl0bb
03.04.2013, 07:44
^^ Das liegt dann sicherlich nicht an SPDY, sondern an unzureichendem Code. Lass dir einfach mal die headers ausgegeben.

Und SPDY ist nicht nur auf Bilder beschränkt, sondern umfasst alle Ressourcen und Calls ;)
Weiterhin sollte man bedenken, dass nicht alle User einen aktiven Cache haben, nutzen können (z.B. Proxy), oder man Caching unterstützen möchte. Daher ist SPDY nicht nur auf den ersten Request beschränkt.

@Thunder
Millisekunden erreicht man mit Codeoptimierung, der Einsatz von SPDY bringt schon etwas mehr :P

ike
03.04.2013, 08:50
^^ Das liegt dann sicherlich nicht an SPDY, sondern an unzureichendem Code.

Klar, dann erkläre mir mal warum es funktioniert sobald ich SPDY abschalte :rolleyes:

Im übrigen wäre es nicht der erste Fehler den SPDY im zusammenhang mit Opera erzeugt, erst mit Opera 12.11 wurden "mehrere Probleme" behoben.

Opera hat ein erstes Update für Version 12.10 seines Desktop-Browsers veröffentlicht, das unter anderem mehrere Probleme mit Googles neu implementiertem Netzwerkprotokoll SPDY behebt
Quelle: Opera 12.11 beseitigt Fehler im Zusammenhang mit SPDY-Support | ZDNet.de (http://www.zdnet.de/88132815/opera-12-11-beseitigt-fehler-im-zusammenhang-mit-spdy-support/)

Thunder™
03.04.2013, 13:43
Ich kann bei mir nicht gerade extreme Verbesserungen verbuchen..

Es ist schon etwas besser als vorher, keine frage aber der WOW Effekt ist ausgeblieben..

vielleicht liegt es an den Proxys..

bl0bb
03.04.2013, 19:21
Na ike - hast du aber nicht erwähnt, dass es ohne SPDY geht ;)
Für mangelnde Umsetzung seitens des Browsers, kann ja keiner was. Aber das betrifft ja alle Bereiche.

Feudas
03.04.2013, 19:36
Also erlich ich sehe da keinen echten nutzen drin.
Der normal sterbliche user surft auf verschiedensten seiten rum, die meisten geschwindigkeitseinbrüche werden vom server den man besucht erzeugt.
Die gründe sind da wie wir wissen ja vielschichtig.
Ich bekomme die daten eigentlich grundsätzlich so schnell der server sie mir geben will.
Und habe auch irgendwie nicht das gefühl das ich jetzt unbedingt noch nen anderes Protokol brauche um es noch schneller zu machen.
Noch schneller kann ich die daten garnict mehr verarbeiten die ich da gezeigt bekomme.
Serverseitig sehe da sganze schon anders aus. wen eine sql abfrage 1,0 oder 0,01 msec braucht ist das für mich als server betreiber sogar sehr wichtig, wie lang der user braucht um die daten in seinem browser an zu zeigen hingegen juckt mich da garnich ;D

ike
09.04.2013, 10:30
Nginx in Version 1.3.15 liefert das SPDY Modul nun mit:

2013-03-26nginx-1.3.15 (http://nginx.org/en/download.html) development version has been released, featuring experimental SPDY module (http://nginx.org/en/docs/http/ngx_http_spdy_module.html).