Edgar Ehritt: /HTTP: große Bilder runterskalieren oder lieber als Thumb laden?

Beitrag lesen

Re:

Bei 20 Bildern sind das grob 12 kB, die allein für HTTP-Header draufgehen.
Ich erstelle die Thumbs mittels imagemagick und einer Batch-Datei, dass laut Manual die Header grösstenteils entfernt.
Wie könnte ich das messen?

ChrisB hatte ja schon darauf hingewiesen, dass wir hier vermutlich von unterschiedlichen Headern reden. Um Header in den Grafikdateien auszulesen, reicht bereits ein einfacher Texteditor aus. Automatisiert auf dem Server kann z. B. die exif-Erweiterung PHPs genutzt werden. Es gibt aber auch noch andere Werkzeuge. Näheres kann Dir hier Wikipedia bzw. exif.org vermitteln.

Rechnet man dann ein thumbnail zu 2,5 kB und ein großes Bild zu 60 kB (was über den Daumen gepeilt auf Deine Galerie zutrifft), würde man nach meinem Vorschlag nur dann plus machen, wenn ein Nutzer _alle_ Bilder betrachtet.
Das ist meistens der Fall, wenn ich mir die Logs so ansehe (meistens, nicht immer). Wobei besagte Seite aber auch nicht so stark besucht ist, dass es nicht ins Gewicht fällt.

Daher ist ja mein Tipp bei überschaubarer Anzahl von Bildern, auf thumbnails zu verzichten. ;)

Moderne Server und Browser nutzen pipelining. Dabei werden mehrere request, ohne den response abzuwarten, hintereinander gesendet werden.
Moderne Browser machen das ja so weit ich weiss Automatisch, wie kann ich aber feststellen, ob mein Server das macht? Gibt es eine möglichkeit, bei gemietetem Webspace das herauszufinden?

Wenn der Apache als Webserver genutzt wird, kannst Du davon ausgehen, dass pipelining unterstützt wird. Speziell testen kann man das mit folgendem Script:

#!/home/eddi/bin/php  
<?php  
$host="localhost";  
$port=80;  
  
if($c=stream_socket_client("tcp://$host:$port",$e_no,$e_msg,5)){  
  
	$host=($port==80)?$host:$host.':'.$port;  
  
	fwrite($c,"GET / HTTP/1.1\r\n");  
	fwrite($c,"Host: $host\r\n");  
	fwrite($c,"Connection: keep-alive\r\n");  
	fwrite($c,"\r\n");  
	fwrite($c,"GET / HTTP/1.1\r\n");  
	fwrite($c,"Host: $host\r\n");  
	fwrite($c,"Connection: close\r\n");  
	fwrite($c,"\r\n");  
	fpassthru($c);  
}  
?>

Gruß aus Berlin!
eddi