Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Stefan Reuther Newsgroups: de.comp.lang.javascript Subject: Re: HTTP POST? Date: Wed, 5 Jun 2019 18:09:49 +0200 Lines: 61 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 8bit X-Trace: individual.net Ba0RM+SihQWSjex7mXhmJQUbw7a/k8XquySsZW2b335llbp75M Cancel-Lock: sha1:9Yz09jvpQYnnkJcdHlc35NtA6u8= User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 Hamster/2.1.0.1538 In-Reply-To: Xref: csiph.com de.comp.lang.javascript:5088 Am 05.06.2019 um 08:30 schrieb Ulli Horlacher: > Stefan Reuther wrote: >> Am 03.06.2019 um 22:31 schrieb Ulli Horlacher: >>> root@fex01:~# tcpbm flupp.belwue.de >>> sent: 19752 MB in 10 s = 1975 MB/s >>> received: 23124 MB in 10 s = 2312 MB/s >>> >>> Das sind HTTP GET und POST. >>> Nix websocket. >>> >>> Aber halt Perl und nicht Javascript. >> >> Perl mit einem eigenen direkt kontrollierbaren HTTP-Stack vermutlich. > > Ja. > In Perl ist das trivial: > tcp-connect, HTTP request absetzen, Daten senden bzw empfangen (und > Transferrate anzeigen). Fertig. > >> Klar, schafft man mit JavaScript und einem eigenen direkt >> kontrollierbaren HTTP-Stack unter node.js auch, die Sprache an sich >> schränkt dich da nicht ein. > > node.js laeuft doch auf dem Server? Das brauch ich nicht, die Serverseite > habe ich bereits implementiert. Ich will nun nur noch wissen, wie es auf > Clientseite in Javascript geht. Genauso, wie du eine Perl-Umgebung auf dem Client installieren kannst, kannst du natürlich eine node.js-Umgebung auf dem Client installieren. Aber die node.js-Umgebung bietet dir halt nicht die gleichen APIs wie der Browser. >> Aber ich hatte verstanden, dass du was für den Browser willst, und da >> macht der HTTP-Stack in erster Linie, was er will. > > Also geht das mit Javascript gar nicht (nur mit HTTP GET und POST)? Es geht mit JavaScript *im Browser* halt nur mit Einschränkungen, weil der sich selbst überlegt, wie er dein XMLHTTPRequest auf HTTP abbildet. Wenn's nur um ein Schätzeisen für den User geht, kann man mit den Einschränkungen dann auch sicher leben. Dann kannst du mit 64k-Blöcken arbeiten und schauen, wie nah du an der Realität landest. Eventuell nutze noch etwas Parallelität, z.B. immer 10 Blöcke aktiv, der Browser sortiert das dann schon irgendwie, so dass bereits direkt nach dem Empfang eines Pakets klar ist, wie es weitergeht, und nicht erst in die JavaScript-Engine, GUI usw. reingerufen werden muss. Eventuell brauchst du dann auch kein POST sondern kommst mit GET hin ("ist ja nur ein Schätzeisen"). Eventuell kommst du mit Megabyte-Blöcken genauere Ergebnisse wie mit 64k. Vielleicht kannst du dann auch bestimmte Einschränkungen bzgl. der Browser treffen, die ein allgemeiner Dienstanbieter nicht kann. Und sei es sowas wie "mit Browser $XYZ sind die Ergebnisse am nähesten an der Realität". Stefan