joachim: Linux Webserver coden

Hallo,

ich habe vor mir einen eigenen Webserver zu coden weil mir Apache zu blöd ist. Dazu habe ich einige Fragen.

Wie setze ich das um das mehrere Prozesse die Anfragen abarbeiten?
Threads will ich vermeiden.
Apache, so hab ich mal gelesen, klont seine Prozesse.
Funktioniert das? Und wie setze ich das um?

Habe ich dann einen Master-Prozess und wenn eine Anfrage kommt klont er seinen Prozess und dieser Klon beantwortet die Anfrage und der Master-Prozess horcht weiter?

Funktioniert das so?

Es geht eigentlich nur darum wie ich das umsetze.
Apache schafft es z.B. mehrere Anfragen "gleichzeitig" zu beantworten. Also muss ich das auch umsezten können. Apache Code studieren will ich nicht.

Grüße joachim

  1. Hallo,

    ich habe vor mir einen eigenen Webserver zu coden weil mir Apache zu blöd ist. Dazu habe ich einige Fragen.

    Zu blöd? Na dann machs mal besser. Auch ist Apache nicht der Einzige.

    Wie setze ich das um das mehrere Prozesse die Anfragen abarbeiten?
    Threads will ich vermeiden.
    Apache, so hab ich mal gelesen, klont seine Prozesse.
    Funktioniert das? Und wie setze ich das um?

    Habe ich dann einen Master-Prozess und wenn eine Anfrage kommt klont er seinen Prozess und dieser Klon beantwortet die Anfrage und der Master-Prozess horcht weiter?

    Funktioniert das so?

    http://de.wikipedia.org/wiki/Fork_(Unix)

    Mick

  2. Hallo!

    ich habe vor mir einen eigenen Webserver zu coden weil mir Apache zu blöd ist. Dazu habe ich einige Fragen.

    Aus akademischen Anreiz heraus ist es löblich einen eigenen Webserver zu programmieren.
    Wenn du ernsthaft denkst du bekommst einen besseren Server als Apache zustande bist du entweder verdammt gut oder du überschätzt deine Fähigkeiten maßlos.

    Mich würde interessieren was dich am Apachen stört? Welche Anforderungen erfüllt er nicht?

    Ich hab mal in einer Firma gearbeitet die haben auch ihren eigenen Webserver und sogar eine eigene serverbasierte Skriptsprache geschrieben. Hat funktioniert - aber leider nur sehr kläglich. Dort haben aber 3-4 Programmierer an dem Ding gearbeitet.

    mfg
      frafu

    1. Ich hab mal in einer Firma gearbeitet die haben auch ihren eigenen Webserver und sogar eine eigene serverbasierte Skriptsprache geschrieben. Hat funktioniert - aber leider nur sehr kläglich. Dort haben aber 3-4 Programmierer an dem Ding gearbeitet.

      3 - 4 Hobbycoder sind nicht minder besser als einer der von seinem Handwerk was versteht.

      So schwer kann es doch nicht seinen einen HTTP-Server zu coden der nur seine Arbeit verrichtet.

      Anfrage kommt rein => Welcher Prozess ist frei? => Neuer Prozess nötig? => Anfrage abarbeiten => freude über zufriedenen client

      Kann doch nicht so schwer sein

      1. Tach,

        So schwer kann es doch nicht seinen einen HTTP-Server zu coden der nur seine Arbeit verrichtet.

        deswegen hat die HTTP-Spezifikation ja auch nur knapp über 170 Seiten, hinzu kommen bei Bedarf Dinge wie HTTPS, CGI, Anbindung an Serverseitige Programmiersprachen, serverseitige Mechanismen wie Umleitungen und Content Negotiation, Anpassung an defekte Client-Anfragen ...

        mfg
        Woodfighter

        1. Hi

          deswegen hat die HTTP-Spezifikation ja auch nur knapp über 170 Seiten, hinzu kommen bei Bedarf Dinge wie HTTPS, CGI, Anbindung an Serverseitige Programmiersprachen, serverseitige Mechanismen wie Umleitungen und Content Negotiation, Anpassung an defekte Client-Anfragen ...

          Hmm...da überlege ich doch glatt lieber nen Webserver zu schreiben, als mich durch die 1000 Seiten Doku zur Ebay-API zu wühlen.

          so long
          Ole
          (8-)>

          --
          Stickstoff eignet sich nicht für Handarbeiten.
      2. Hallo Joachim,

        3 - 4 Hobbycoder sind nicht minder besser als einer der von seinem Handwerk was versteht.

        Wenn du von dir behauptest, dass du dein Handwerk verstehst, dann solltest du auch Kritik an dich herankommen lassen.
        Ein guter Programmierer ist nicht derjenige, der viel kann, sondern derjenige, der es versteht, bestehenden Code wiederzuverwenden.

        So schwer kann es doch nicht seinen einen HTTP-Server zu coden der nur seine Arbeit verrichtet.

        Wenn man die richtige Sprache wählt (beispielsweise Java), dann ist es noch einfacher. Ich kenne hier einen an der TU Darmstadt, der einen HTTP 1.0-kompatiblen Webserver in Java geschrieben hat - in drei Tagen. Sogar mit CGI-Unterstützung (ist ja nicht aufwendig).

        Grüße

        Marc Reichelt || http://www.marcreichelt.de/

        --
        Linux is like a wigwam - no windows, no gates and an Apache inside!
        Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
        1. 3 - 4 Hobbycoder sind nicht minder besser als einer der von seinem Handwerk was versteht.

          Ein guter Programmierer ist nicht derjenige, der viel kann, sondern derjenige, der es versteht, bestehenden Code wiederzuverwenden.

          Hallöchen,

          das wäre mir neu, daß zwei oder drei "Hobbycode" einen guten Software-Entwickler ersetzen könnten.

          Ein guter Entwickler ist nicht unbedingt primär daran zu erkennen, daß er weiderverwendbaren Code schreibt, sondern eher daran daß er oder sie bei möglichst vielen Anforderungen weiss, was zu tun ist, also u.a. welche Technologien einzusetzen sind.

          Viele Grüße
          Micha

          1. Hallo Michael,

            Ein guter Programmierer ist nicht derjenige, der viel kann, sondern derjenige, der es versteht, bestehenden Code wiederzuverwenden.

            Hallöchen,

            das wäre mir neu, daß zwei oder drei "Hobbycode" einen guten Software-Entwickler ersetzen könnten.

            Ein guter Entwickler ist nicht unbedingt primär daran zu erkennen, daß er weiderverwendbaren Code schreibt, sondern eher daran daß er oder sie bei möglichst vielen Anforderungen weiss, was zu tun ist, also u.a. welche Technologien einzusetzen sind.

            Lies noch mal meine Aussage genau durch, dann siehst du, dass du das gleiche wie ich geschrieben hast - nur etwas anders formuliert. ;-)

            Grüße

            Marc Reichelt || http://www.marcreichelt.de/

            --
            Linux is like a wigwam - no windows, no gates and an Apache inside!
            Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
      3. Hallo!

        So schwer kann es doch nicht seinen einen HTTP-Server zu coden der nur seine Arbeit verrichtet.

        Kommt drauf an was der alles können soll. Einfach nur Resourcen ausliefern - Ok, nicht so schwer. Das macht aber noch lange keinen Webserver aus.
        Komplizierter wirds schon bei Loadbalancing, CGI, Anbindung von serverseitigen Scriptmechanismen, ...

        Mir würde nach wie vor interessieren was du brauchst was der Apache nicht kann.

        mfg
          frafu