nanoHTTP - Eingebetteter Webserver

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

nanoHTTP - Eingebetteter Webserver

Beitrag von TroaX »

Ich habe meinen Webserver mal soweit fertig gemacht und gebe ihn hier mal zum testen frei. Da ich momentan mit meinen PC's nicht ins Internet komme, musste ich alles schon fummelig mit dem Smartphone erledigen.

Von daher ohne viele Worte: https://github.com/reVerBxTc/nanoHTTP

Würde mich über Feedbacks freuen.
Zuletzt geändert von TroaX am 31.05.2019 10:46, insgesamt 1-mal geändert.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: nanoHTTP - Eingebeteter Webserver

Beitrag von RSBasic »

Cool, ich teste es später, hört sich sehr gut an. :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Lord
Beiträge: 313
Registriert: 21.01.2008 19:11

Re: nanoHTTP - Eingebeteter Webserver

Beitrag von Lord »

nanoHTTP - Eingebeteter Webserver
Muß es nicht "nanoHTTP - Angebeteter Webserver heißen?
:mrgreen:

Der mußte einfach sein.
Bild
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: nanoHTTP - Eingebetteter Webserver

Beitrag von TroaX »

Wenn du ihn anbeten willst :P
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Re: nanoHTTP - Eingebetteter Webserver

Beitrag von uweb »

Super, danke!

nanoHTTP - Ein einfacher einbindbarer Webserver - hält was er verspricht sehr gut, soweit ich das nach einem kurzen Test beurteilen kann.
Das hat PBExpress ja auch schon getan. Aber nanoHTTP lässt sich auch ohne viel Aufwand und Abhängigkeit sogar portabel auf dem Desktop nutzen.

> Über einen Reverse Proxy, der für Netzsicherheit, Benutzer-Authentifizierung und SSL-Verschlüsselung sorgt, könnte man die verbleibende Netzwerbaustelle auslagern (wenn man eine gute Lösung findet und sie konfigurieren kann). Das würde die PB-Lösung dann auch im Web schlank halten.

> Dann bleibt "nur" noch die GUI - die "modernere Benutzeroberflächen mit Hilfe von Webtechnologien".

Arbeitest Du auch an einer der beiden Baustellen, oder konzentrierst Du Dich auf das Bindeglied?

nanoHTTP gefällt mir vom Ansatz her sehr gut. Das tat PBExpress aber auch schon.
Ich wollte ich könnte mich mehr einbringen. Statt dessen fange ich immer wieder bei 10% an und arbeite mich auf 30% vor wenn ich mal Zeit finde.
Ich als ü50 mit u50% träume halt von einer Basis bei der ich mich auf das konzentrieren kann was ich tun will und alles andere wird mir abgenommen.
Auf der anderen Seite gefällt mir PB ja gerade weil es so klein, schnell und übersichtlich ist.

PB2Web ging ja schon mal in Richtung JavaScript. Mit dem Anspruch als Transpiler war die ohnehin schon hohe Latte halt noch zusätzlich hoch gesetzt.
SpiderBasic konnte mich irgendwie nie begeistern. Es gab ja aber noch viele andere Ansätze. Das Thema Browser-GUI scheint wohl schon lange viele zu interessieren. Die Möglichkeiten die sich bieten könnten wären halt auch enorm - z.B. WebView.

An der Netzwerkbaustelle versuchen sich weniger. Ich denke die ist genauso wichtig. Ohne ein wasserdichtes System mit den üblichen Funktionen wird es wohl schwer. Ich glaube ich bin nicht der einzige der da Unterstützung brauchen kann. Neben dem klassischen Client-Server gibt es da ja auch Trends zu dezentralen Lösungen und zu ad hoc Netzen. Von HTTP ist es ja nicht mehr soo weit zu WebDAV. ... Das Spielfeld ist groß.

Lange Rede - kurzer Sinn: Danke! Super Sache, mache bitte weiter.
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: nanoHTTP - Eingebetteter Webserver

Beitrag von TroaX »

Erst einmal Danke für das Lob. :)

In wie weit meinst du das mit der modernen Benutzeroberfläche?

Durch das ExWebGadget von RSBasic kannst du ja unter Windows die Chromium-Engine verwenden. Unter Mac und Linux steht Webkit über das PB-Webgadget zur Verfügung. Somit solltest du eigentlich nahezu alle Möglichkeiten haben, mit HTML, CSS, Javascript und natürlich Frameworks wie Vue.js, Bootstrap oder JS-Libs wie TinyMCE, MetroUI und Co moderne Oberflächen und Anwendungen zu erstellen.

Statt einem Reverse-Proxy empfehle ich eher FastCGI direkt über einen Webserver zu verwenden. NanoHTTP war nie als Ersatz für PBExpress gedacht. Deswegen liefert der Server auch keine Hilfen für z.B Cookies mit. NanoHTTP verfolgt den klassischen Grundsatz "so viel wie nötig ... So wenig wie möglich". Für Webseiten empfehle ich glasklar einen etablierten Server und PB als FastCGI dahinter.

Auch wenn ich selbst großer Fan von HTTP bin. Ich bin kein Fan von WebDAV. Ich halte FTP besser dafür geeignet. Was wäre denn der Grund für WebDAV unter Purebasic?
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benutzeravatar
uweb
Beiträge: 461
Registriert: 13.07.2005 08:39

Re: nanoHTTP - Eingebetteter Webserver

Beitrag von uweb »

Den Reverse-Proxy habe ich eigentlich nur erwähnt um deutlich zu machen, dass nanoHTTP nicht auf den Desktop beschränkt sein muss.
Neben den genannten Vorteilen wäre noch eine Lastverteilung bis hin zu Dynamischem DNS möglich. PBExpress wäre der direktere und effektivere Weg.
Egal ob Reverse-Proxy oder FastCGI mir fehlt die Out-of-the-box-Lösung für den produktiven Bereich. Beim Lernen kommt man an Try and Error nicht vorbei. Im Web kann das Thema Sicherheit aber zum Problem werden ohne dass man es merkt.

ExWebGadget finde ich auch toll. Es gibt immer mehr und immer bessere Ansätze. Grundsätzlich habe ich die Möglichkeit ja schon lange "modernere Benutzeroberflächen mit Hilfe von Webtechnologien zu realisieren". Für mich ist halt der Aufwand noch sehr groß. Da ich die Formulierung aus Deiner github-Seite habe, habe ich gehofft, dass dazu noch etwas kommt. Aber Du hast wohl recht. Ein spezielles PB-JS-Framework wäre wohl eine kleine Insel und ein großer Kompromiss. Mir bleibt wohl nichts anderes übrig als mich mit den etablierten Frameworks zu beschäftigen. Was wäre denn Deine Empfehlung in Sache JS-Framework?

Was das Protokollangeht sind wir einer Meinung. Ich finde FTP auch besser als WebDAV, weil es effektiver ist. In manchen Fällen kommt man aber nicht daran vorbei und nanoHTTP als Basis gibt es schon.
Auf nanoFTP wartet die Welt noch. :D
Ich hätte dann auch gleich dafür Erweiterungsvorschläge: FTPs und Benutzerverwaltung. :mrgreen:
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: nanoHTTP - Eingebetteter Webserver

Beitrag von TroaX »

Naja eine Out-of-the-Box Lösung gibt es dabei nicht wirklich. Den Webserver komplett sicher zu implementieren wäre ein Mammutprojekt. Da sind unglaublich viele Sachen zu beachten. Neben den vielen Modis zur Verbindungsverschlüsselung kommt auch noch das Handling mit den Zertifikaten, den Zertifikatservern, der Fehlerbehandlung usw. dazu. Dabei ist das Konfigurieren eines Webservers zu leicht, um sich mit einer Eigen-Implementierung zu quälen. Eine Lastverteilung lässt sich auch mit FastCGI realisieren. Die Loadbalancer gängiger Webserver können die Last auf mehrere Instanzen verteilen. Diese müssen nicht einmal auf dem gleichen Server laufen. Man muss nur eben aufpassen, das die FastCGI Anwendung oder auch nanoHTTP nur auf Anfragen vom Webserver reagieren.

Für ein PB-JS-Framework wäre interessant zu wissen, was man sich davon verspricht. Will man die Entwicklung aus einem Guss (GUI und Script mit PB schreiben wie z.B PB2Web -Transpiler) oder geht es da nur um ein erweitertes Toolset in Javascript? Nur was soll es können, damit es Sinn ergibt? NanoHTTP ist ja nur eine Brücke zwischen Gadget und Purebasic Anwendung. Man könnte zwar theoretisch ein Satz an Funktionen bereitstellen und parallel diese als Javascript-Bibliothek realisieren. Doch am Ende sind es nur Ajax-Requests auf unterschiedliche URL's und unterschiedlichen Daten. Ich selbst würde Transpiler nie einsetzen wollen. Ein großer Vorteil bei einer UI im Webgadget ist eben auch, das die UI und der Programmcode strikt getrennt sind. Spiderbasic oder PB2Web sind/waren Werkzeuge, die beides wieder in einen Topf schmeißen. Ich würde beim JS-Framework weiterhin auf JQuery setzen wollen. Es liefert alles mit was man für Ajax und DOM-Manipulation benötigt und ist dabei noch sehr schlank.

Will man zusätzliche Gadgets haben gibt es zusätzliche Plugins wie JQuery-UI, JQuery-Mobile, Metro-UI. Die Möglichkeiten sind da endlos. Um diese würde man sich mit einem Framework beschneiden. Ich müsste irgendwie den Sinn hinter einem Framework sehen können, damit ich darüber nachdenken würde. Aber das fällt mir aktuell sehr schwer, da mir keine Konkreten Ansätze einfallen wollen. Was soll es machen?

Und was meinst du mit nanoFTP? Was stellst du dir darunter vor? :lol:
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: nanoHTTP - Eingebetteter Webserver

Beitrag von RSBasic »

RSBasic hat geschrieben:Cool, ich teste es später, hört sich sehr gut an. :allright:
Ich habe es jetzt getestet. Funktioniert hier sehr gut. Gefällt mir. :allright:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
TroaX
Beiträge: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: nanoHTTP - Eingebetteter Webserver

Beitrag von TroaX »

Das freut mich :)
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Antworten