Tach!
Entscheidend ist der Kontextwechsel! Und bei
xhr.send(formdata)
heißt der Kontext String.Das kann ich nicht als richtig akzeptieren. Die MDN führt eine ganze Reihe von Dingen auf, die XHR.send() akzeptiert.
A body of data to be sent in the XHR request. This can be:
- A Document, in which case it is serialized before being sent.
- A BodyInit, which as per the Fetch spec can be a Blob, BufferSource, FormData, URLSearchParams, ReadableStream, or USVString object.
String ist nur eine der Möglichkeiten.
Abstrakt gesehen ist das alles Stringkontext
, auch der Blob. Allgemein handelt es sich um Bytesequenzen und somit kommen wir wieder zum Wirth'schen Dateibegriff ohne den es mp3 gar nicht geben würde.
Aber zurück zu den Sequenzen, ein xhr.send(blob)
bewirkt, daß in STDIN serverseitig eine Bytesequenz zu lesen ist. Dasselbe bei xhr.send('äöü')
und natürlich auch wenn ein ArrayBuffer gesendet wird.
Selbst in JS kann man zwischen Blob, USVString ArrayBuffer vermitteln, new Blob(['äöü']);
als Beispiel.
Für uns als Informationstechniker ist das Entscheidende an den von Dir o.g. Datentypen, daß der Informationsgehalt derselbe ist. Und genau das zeigen die von mir verlinkten Anwendungen!
Und dahinter steckt eben der Fakt, daß Daten nicht als Objekte, Arrays, Blob usw, übertragen werden sondern grundsätzlich als Bytesequenzen. Wenn man serverseitig also ein äöü
in STDIN bekommt, ist es unerheblich ob diese Sequenz aus der Sicht von JS als Blob, File, ArrayBuffer oder String gesendet wurde, der Inhalt ist absolut derselbe.
Umgekehrt ist das ganz analog: Eine serverseitige gesendete Sequenz äöü
kann JS im Browser als Blob, File, ArrayBuffer oder als Text/String empfangen und, wie bereits dargelegt, die FetchAPI kann aus einem Messagebody sogar ein FormData Objekt erstellen.
Also ich denke schon, daß der Begriff Stringkontext
hier trefflich passt. Letztendlich sind das ja auch alles grundsätzliche Dinge die sich in der IT über Jahrzehnte entwickelt haben und nicht auf meinem Desktop. Inwieweit zwischen String und Bytesequenz unterschieden wird, daß regeln die einzelnen Programmiersprachen, somit ist das überhaupt ein Streitthema.
Und selbst wenn hierfür einmal nicht der exakte Fachbegriff benutzt würde, so sollte doch wenigstens klar sein worum es geht.
MfG