User since
2011-03-19
3463
articles
BenutzerIn
Das Rad neu erfinden ist völlig in Ordnung wenn es ums Lernen geht. Und oft genug kommt dabei so manche geniale Idee auf die Welt. Vor ein paar Jahren (um 2004) beispielsweise machte ich mir Gedanken darüber wie Binaries per HTTP am effizientesten übertragen werden können. Im Prinzip hab ich dabei den PUT Request neu erfunden bzw. dieser Request-Methode ein paar entscheidende Verbesserungen hinzugefügt:
Der Binary gehört der gesamte Message-Body während der Header-Bereich beliebig vielen weiteren Informationen vorbehalten ist. Seitdem wickle ich mein ganzes Remote-Management einschließlich DB-Management über HTTP ab und wie die Request-Methode dabei heißt ist mir völlig Wurscht.
Mittlerweile unterstützen auch moderne Browser das Senden nativer Binaries via Javascript, hat ja auch lange genug gedauert. Dateiupload per Browser ist seit ein paar Jahren per AJAX möglich und auch mit benutzerdefiniertem Enctype. Dass Enctype="multipart/form-data" Schrott ist, hab ich ja vor Jahrzehnten breits festgestellt, eine unsachgemäß programmierte Webanwendung kann den ganzen Webserver lahmlegen und aus ähnlichen Gründen nutze ich auch CGI.pm schon lange nicht mehr sondern ein eigenes Modul was für beliebige Enctypes erweiterbar ist weil es diese als Layer bzw. Schichtenmodell implementiert.
Wir kochen alle nur mit Wasser, aber was ich in den letzten Jahren meines Programmiererdaseins gelernt hat, ist, wie man's besser nicht machen soll. Das Ergebnis kann sich sehen lassen, mittlerweile laufen alle meine produktiven Webdomänen über ein einziges CGI-Script und über dasselbe Script wird auch das Content-Management abgewickelt. Auch für Remote-Procedure-Call wird serverseitig eine Instanz des Web-Application-Framework erstellt, was den Vorteil hat, dass diese Instanz eben sämtliche Domänen und deren dazukonfigurierte URLs kennt. OOP ist eben nicht die Lehre von Äpfeln und Birnen sondern eine praktische Angelegenheit.
Schönen Sonntag.