Suche stabilen und leicht modifizierbaren HTTP Server für Windows (C++)



  • tntnet läuft nicht unter Windows.



  • Also wenn ich das richtig verstehe, geht es dir eigentlich nur darum, auf einen nicht vorhandenen Dateipfad, den der Client anfordert, reagieren zu können? Ich bin selbst kein Webfachmann. Aber muß es ein Pfad sein? Kann es nicht sowas sein:

    http://server.com/myprog.exe?file=/a/b/c/x123.bin
    

    Das wäre doch eine spezifikation, nach der sich jemand richten müsste. Was meiner Meinung nach sowohl menschlich als auch programmatisch kein Ding wäre.
    Dann bräuchte man keine manipulierten Server.

    Gut, ist jetzt nicht die Lösung auf deine Frage, aber vielleicht eine Alternative?

    Zum Server: wenn ihr eh schon MS-Technik einsetzt, und Plattformunabhängigkeit kein großes Thema ist, kann man sich vielleicht die ATL-Server anschauen?
    http://www.kharchi.eu/wiki/doku.php?id=cpp:web:basics#atl-server

    Ansonst denke ich nicht, das es ernsthafte Konkurrenz zu IIS und Apache gibt, ohne wieder viel Geld und Arbeit zu investieren.

    Schau mal hier: http://httpd.apache.org/ Das wird gerne von anderen C++-Web-Libraries benutzt, z.B. Witty.

    Aber ich würde versuchen heraus zu finden, ob es nicht mit IIS und evtl. ATL-Server lösbar wäre. Denn sich nen weiteren Server-Typ hinzustellen, ist irgendwie mit Zusatzaufwand (Wartung, Erlaubnis ob man das überhaupt darf in der Firma usw.)



  • hustbaer schrieb:

    Mit "berechnet" meine ich damit nicht ala PHP oder ASP - die Files müssen on-demand mit C++ Code erstellt werden.

    warum müssen die files mit c++ code erstellt werden?
    PHP, ASP, JSP und was es da alles noch gibt, wäre doch sonst ideal dafür.



  • In den Beispielen von boost::asio ist ein Pseudo HTTP Server dabei, wenns nur um einfache Fileservice geht, könnte man den sicher erweitern.
    Wird aber wahrscheinlich zuviel Aufwand sein, weil Zeit hat man ja eh keine 😉

    http://asio.sourceforge.net



  • Spiderman schrieb:

    hustbaer schrieb:

    Mit "berechnet" meine ich damit nicht ala PHP oder ASP - die Files müssen on-demand mit C++ Code erstellt werden.

    warum müssen die files mit c++ code erstellt werden?
    PHP, ASP, JSP und was es da alles noch gibt, wäre doch sonst ideal dafür.

    Vielleicht ist der Algorithmus schon fertig implementiert und wird erfolgreich an anderer Stelle (System, Anwendung wie auch immer) eingesetzt. Muß man ja nicht reemplemntieren, wenns auch einfacher geht?



  • Artchi schrieb:

    Spiderman schrieb:

    hustbaer schrieb:

    Mit "berechnet" meine ich damit nicht ala PHP oder ASP - die Files müssen on-demand mit C++ Code erstellt werden.

    warum müssen die files mit c++ code erstellt werden?
    PHP, ASP, JSP und was es da alles noch gibt, wäre doch sonst ideal dafür.

    Vielleicht ist der Algorithmus schon fertig implementiert und wird erfolgreich an anderer Stelle (System, Anwendung wie auch immer) eingesetzt. Muß man ja nicht reemplemntieren, wenns auch einfacher geht?

    was eigentlich kein problem wäre. PHP/apache könnte z.b. mit dem C-code über sockets oder shared memory kommunizieren, man könnte aus dem C-code kommandozeilen tools DLLs, oder sonstwas machen. es gibt da 1000 möglichkeiten. einen webserver zu modifizieren etc. um den eigenen code dort unterzubringen wäre dagegen ein riesenaufwand.



  • Also.

    Artchi schrieb:

    Aber muß es ein Pfad sein? Kann es nicht sowas sein:

    http://server.com/myprog.exe?file=/a/b/c/x123.bin
    

    Eher nicht denke ich. Das ganze soll (muss) über einen Reverse-Proxy gecachet werden, d.h. der Reverse-Proxy darf auf keinen Fall das File jedesmal vom "master server" anfordern wenn es vom Proxy geladen wird. Weiters wäre es wünschenswert wenn transparente Web-Caches von Providern die Files als "cachebar" erkennen würden. Ich bin zwar auch kein Web-Profi, aber ich befürchte dass URLs die ein "?" enthalten einfach als Query interpretiert, und daher nicht gecachet werden.

    Spiderman schrieb:

    warum müssen die files mit c++ code erstellt werden?
    PHP, ASP, JSP und was es da alles noch gibt, wäre doch sonst ideal dafür.

    Sagen wir mal so: wenn es irgendwie geht möchte ich das in C++ machen. Hätte einfach viele Vorteile, z.B. können wir bestimmte Libraries verwenden die auch clientseitig zum Einsatz kommen, dann können alle Programmierer bei uns C++ aber nur wenige wirklich gut PHP/VB/Java, etc.

    phlox81 schrieb:

    In den Beispielen von boost::asio ist ein Pseudo HTTP Server dabei, wenns nur um einfache Fileservice geht, könnte man den sicher erweitern.
    Wird aber wahrscheinlich zuviel Aufwand sein, weil Zeit hat man ja eh keine 😉

    Werde ich mir auf jeden Fall ansehen, Danke 🙂

    PHP fan schrieb:

    was eigentlich kein problem wäre. PHP/apache könnte z.b. mit dem C-code über sockets oder shared memory kommunizieren, man könnte aus dem C-code kommandozeilen tools DLLs, oder sonstwas machen. es gibt da 1000 möglichkeiten. einen webserver zu modifizieren etc. um den eigenen code dort unterzubringen wäre dagegen ein riesenaufwand.

    Mann kann sich auch ein Loch ins Knie bohren und dann Salz reinstreuen 😉
    Bevor ich mir DEN Aufwand mache nehme ich nen Active-X bzw. C++/CLI Komponente und verwende die aus einem ASP bzw. ASP .NET File.



  • 😕
    Hab ich jetzt was falsch verstanden oder warum rufst du dein C++ Programm nicht einfach über CGI auf? Wenns zu langsam ist kannst du ja FastCGI verwenden.



  • Hat er doch erklärt und ist auch einleuchtend!



  • könnte da mod_rewrite (von Apache) nützlich sein?





  • Wie wärs mit einem sehr einfachen CGI Adapter und der CGI Schnittstelle
    von Apache? Wenn Du den Code in den WebServer integrierst, kannst
    Du in Zukunft nen Webserver mitpflegen - den Aufwand würde ich nicht
    vernachlässigen...

    Gruss
    Stefan


Anmelden zum Antworten