800XE hat geschrieben:was ist mit einem
Das Script läuft doch nach dem "header Location" noch weiter?
In dem angefragten Skript
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location:
http://www.neuedomain.de");
?>
ist nach der zweiten header()-Zeile ja auch noch viel weiterzulaufen … Mal abgesehen davon spricht nichts dagegen, dass das Skript noch weiterläuft, vielleicht möchte man ja noch irgendwelche Verwaltungs- oder Protokollierungsaufgaben erledigen.
und der "connection close" ist hier wohl, in diesem Anwendungsfall, kein fehler ....
... wenn es auf eine Andere Domain geht, dann will ich ja von dort nichts mehr
Wenn eine HTML-Seite unter example.com/ Werbung über example.com/werbung.php einbindet und dieses PHP-Skript eine Weiterleitung an den eigentlichen Werbeanbieter ausgibt, bedeutet das noch lange nicht, dass die Domain example.com damit endgültig abgearbeitet ist und verlassen wird. Es können sich neben der Werbung noch Dutzende andere Grafiken, CSS-, Javascript- oder sonstwas für Daten in example.com/ befinden, die nach der Werbegrafik (-weiterleitung) abgerufen werden, um die Seitendarstellung zu vervollständigen.
Üblicherweise sieht es dann so aus, dass der Browser für die neue Domain eine weitere Verbindung aufmacht und die bestehende example.com-Verbindung, über die die Weiterleitung kam, parallel dazu für die weiteren Daten von example.com verwendet.
Wie ich bereits schrieb: Überlasse das Denken dem Browser, der kann das besser.
Ich hab die Erfahrung gemacht, wenn du zwei Webseiten miteinander quastschen läßt ...
.... Eine holt sich Daten von der Anderen
Dann muß die 2te nach dem "echo" (bzw dafor) einen connection close machen ....
.... sonst wartet das ganze noch 20 Sekunden ob der Kurier nochmal durch die Tür kommt ....
Ich möchte mal behaupten, dass zwischen dem Apache-Webserver oder den Browsern der großen Hersteller einerseits und irgendwelchen zusammengefrickelten PHP-Skripten andererseits doch ein ganz gewaltiger Unterschied besteht.
das wirkt sich auch auf Website 1 aus, den die hat zwar die Daten schon .... aber muß 20 Sekunden warten bis Website 2 sagt "ok, ich hab nix mehr für dich"
Im HTTP-Protokoll gibt es kein "Ich habe nichts mehr für dich". Die Datenpakete sind klar abgegrenzt, entweder durch die zwingend erforderliche Längenangabe oder durch das TCP-Verbindungsende. Wenn Webseite 1 noch eine Ewigkeit auf Daten wartet, obwohl sie bereits alles erhalten hat, was sie haben wollte, dann ist Webseite 1 schlichtweg fehlerhaft – mal ganz abgesehen davon, dass man üblicherweise die Wartezeit auf Daten mit anderen Dingen füllt, anstatt den kompletten Ablauf zu blockieren. Oder kurz: Webseite 1 ist Pfusch.
Wegen solchem Privatpfusch anständige Software, in diesem Falle: so ziemlich alle Webbrowser, auszubremsen, ist widersinnig.