echo $begrüßung;
Und es ist komplett ausgeschlossen, dass bereits während des Requests Response-Daten zum Client gelangen?
Ich halte es für absolut blödsinnig, während des Uploads versuchen schon mal eine Anwort vom Server zu erhalten, ich habe schon HTTP-Clients geschrieben und darauf wäre ich ganz sicher nicht gekommen.
In der RFC kann ich auch nichts Gegenteiliges finden:
Ich würde es komisch/bedenklich finden, wenn dem Server nicht erlaubt wäre, in einen Request mit jeder Menge Daten im Anhang dazwischenzufunken, um dem Client beispielsweise mitzuteilen, dass der Anhang völlig uninteressant ist, weil eh keine Zugriffserlaubnis auf die angeforderte Ressource besteht.
Und in der Tat lese ich in Abschnitt 8.2.2 Monitoring Connections for Error Status Messages:
An HTTP/1.1 (or later) client sending a message-body SHOULD monitor the network connection for an error status while it is transmitting the request. If the client sees an error status, it SHOULD immediately cease transmitting the body.
Damit wäre schon mal im Fehlerfall eine Response möglich während der Request noch läuft.
Das folgende Kapitel beschäftigt sich mit dem Verhalten bei aufgeteilten Requests (100-Continue) Auch da findet eine Kommunikation quasi während des laufenden Requests statt, wenn dabei auch bloß Statusmeldungen und keine für den serverseitigen Fortschrittsbalken nötigen Nutzdaten übertragen werden können.
Der Rest der RFC geht, so wie es mir scheint, nicht weiter auf den zeitlichen Ablauf von Request und Response ein. Ich kann da kein Verbot der vorzeitigen Antwort sehen.
"The HTTP protocol is a request/response protocol. A client sends a request to the server [...] The server responds [...]" (HTTP/1.1: Introduction 1.4 Overall Operation)
Wenn der Server während des Uploads Daten an den Client schicken könnte würde da meines Erachtens stehen "The HTTP protocol is a streaming protocol [...]".
Da steht aber nichts vom zeitlichen Ablauf der ganzen Geschichte. Aus der ASCII-Grafik kann ich nichts Gescheites entnehmen.
Außerdem ist ein Fortschrittsbalken tausendmal einfacher zu implementieren.
Wie stellst du dir das Verhalten des Browsers vor, wenn ein Proxy zwischengeschaltet ist? Der Request landet samt Body beim Proxy. Der Fortschrittsbalken flog nur so vorbei, weil der Proxy im schnellen Intranet steht. Was soll nun der Browser in der Zwischenzeit machen, solange der Request über die dünnere Außenanbindung vom Proxy zum Webserver übertragen wird? Wie soll der User reagieren, wenn ihm signalisiert wird, "Request ist erledigt" aber der Server mit der Antwort auf sich warten lässt?
echo "$verabschiedung $name";