Edgar Ehritt: HEAD-Alternative

Beitrag lesen

HALLO!

Naja, stell dir vor, du bietest große Dateien zum Download an und musst den Speed drosseln, damit du deine Warteschlange genau kontrollieren kannst ;) Wie auch immer, Anwenungsbereiche gibt es immer und ich bin solchen Skripts schon öfter begegnet, wehalb ich das in meinem Programm beachten muss oder eher sollte ;)

Au man...
Was andere falsch machen, macht ein braves Herdentier beratungsresistent auch nach. (Eine Frage zu Klassifizierung: Sagst Du "Muh" oder "Mäh"?)

Ich habe es gerade mal versucht. Habe ein PHP-Skript genommen, das den speed auf 500KB/s begrenzt und mir ein 6 MB File liefert.

Jemanden mit mehr Datendurchsatz wird von Dir grundlos ausgebremst. Jemand mit weniger Datendurchsatz hat davon keinerlei Vorteile. Die Maschine, auf der sich Dein Script befindet, muss einen Prozess mit recht großem Speicherverbrauch unnötig lange laufen lassen. Und wie Du selber fest gestellt hast, aber es offensichtlich mangels Wissen nicht besser interpretieren kannst, bremst Du download manager aus.

Summa summarum: Keine Vorteile - nur Nachteile.

Schicke ich ein GET-Request, bekomme ich sofort den InputStream und kann schon die ersten Zeilen und somit die Header auslesen. Es wird also mittels flush() im Script erfolgreich der Inhalt an den Client übertragen.
Änder ich das GET in ein HEAD um, dann bekomme ich den InputStream nicht sofort, sondern erst etwa 12 Sekunden später. Da 500 KB * 12 Sek ungefähr 6 MB ist, liegt die Vermutung nahe, dass bei dem Head-Request eben nicht gleich der Content gesendet wird (ist ja der Sinn von HEAD) und damit erst das Skript abgearbeitet wird.

Bei einer HEAD-Anfrage verfahren die meisten Server so, dass die gesamte Anfrage virtual abgearbeitet. Die Scriptausgaben werden also verworfen. Dieses könnte, wenn man eben keinen Blödsinn mit sleep() veranstaltet, binnen Sekundenbruchteilen geschehen.

Entschuldige bitte die anfänglich recht barschen Worte! Fehlgeleitet zu sein, ist nicht so sehr schlimm, wenn man sich müht zu hinterfragen und dadurch zu verbessern - bei Dir mangelt es aber an der Kondition. ^,-

Gruß aus Berlin!
eddi

--
Das ist ja gerade das perverse am Menschen, der sich aus dem Tierreich erhoben wähnt:
Die Jugend verbringt man damit, seine "Rudelführer" (und sei es auch nur im geistigen Geschick und Können) zu verbeißen, um als Erwachsener damit leben zu müssen, dass man ein ganzes Rudel mitlaufender hinter sich hat.