Frage

Ich brauche Jede mögliche Anleitung einen einfachen HTTP-Server in C zu bauen? Links? Die Proben?

War es hilfreich?

Lösung

Ich schlage vor, Sie einen Blick auf rel="noreferrer">. Wenn Sie es von Grund auf neu schreiben wollen, dann werden Sie auf wollen gründlich lesen RFC 2616 . Verwenden Sie BSD-Sockets auf das Netzwerk zugreifen zu einem wirklich niedrigen Niveau.

Andere Tipps

Ich würde empfehlen, dass Sie einen Blick auf: A Practical Guide to Schreiben von Clients und Server

Was Sie in kleinen Schritten implementieren ist:

  1. Sie sich jetzt Ihre TCP Sockets Layer läuft (hören auf Port / Ports, Client-Verbindungen akzeptieren und Senden / Empfangen von Daten).
  2. Implementieren einen gepufferten Leser, so dass Sie Anfragen eine Zeile (begrenzt durch CRLF) zu einem Zeitpunkt lesen.
  3. Lesen Sie die erste Zeile. Parsen des Verfahrens, die Anfrage-Version und den Pfad.
  4. Implementieren Header für das Parsen "Header: value" Syntax. Vergessen Sie nicht, gefaltet Header Entfaltung.
  5. Überprüfen Sie die Anforderungsmethode, Inhaltstyp und Inhaltsgröße zu bestimmen, wie / ob der Körper gelesen werden.
  6. Dekodierung von Inhalten implementieren, basierend auf Inhaltstyp.
  7. Wenn Sie vorhaben, HTTP 1.1 zu unterstützen, implementieren Dinge wie "100 Continue", keep-alive, segmentierten Übertragungs.
  8. Fügen Robustheit / Sicherheitsmaßnahmen wie unvollständige Anfragen zu erfassen, zu begrenzen maximale Anzahl der Clients etc.
  9. Shrink Wrap Code und Open-Source-it:)

Ein HTTP-Server ist vom Konzept her einfach:

  • Öffnen Sie Port 80 für das Hören
  • Wenn der Kontakt hergestellt ist, sammeln ein wenig Informationen (erhalten in erster Linie - Sie den Rest vorerst ignorieren können)
  • Übersetzen Sie die Anforderung in eine Datei Anfrage
  • Öffnen Sie die Datei und spucken es auf dem Client zurück

Schwieriger wird es, je nachdem, wie viel von HTTP Sie unterstützen wollen -. POST ein wenig komplizierter, Skripte ist, mehrere Anforderungen Handling, etc.

Aber die Basis ist sehr einfach.

Mongoose (ehemals einfache HTTP-Daemon) ist ziemlich gut. Insbesondere ist es integrierbare und kompiliert unter Windows, Windows CE und UNIX.

öffnen Sie einen TCP-Socket auf Port 80, Start für neue Verbindungen zu hören, dies umzusetzen . Je nach Ihrem Zweck, können Sie fast alles ignorieren. Am einfachsten können Sie die gleiche Antwort für jede Anforderung senden, die nur Schreiben von Text auf dem Sockel verbunden ist.

Blick auf nWeb (Nigels Web Server) "einen kleinen, sicheren Web-Server [...] mit nur 200 Zeilen C-Quellcode":

https://drive.google.com/file/d/ 0B3msld7qnNOhN1NXaFIwSFU2Mjg / view? usp = Sharing http://www.ibm.com/developerworks/systems/library / es-nWeb /

Der Artikel enthält Pseudo-Code, Erklärungen und Kommentare.

EDIT: IBMs Link ist gestorben. Ich habe eine PDF von der Webseite in Google Drive gespeichert. Hier ist der Code-Download:

https://drive.google.com/file/d/ 0B3msld7qnNOhSGZGdDJJMmY0VHM / view? usp = Sharing

ankushagarwal hat ein paar Änderungen vorgenommen und hochgeladen seine Version auf GitHub: https://github.com/ankushagarwal/nweb

Ich habe meine eigenen geschrieben, dass Sie verwenden können. Dies funktioniert SQLite hat, ist Thread-sicher und ist in C ++ für UNIX.

Es soll möglich sein, sie auseinander zu holen und die C-kompatiblen Code verwenden.

http://code.google.com/p/mountain-cms/

Die HTTP-Spezifikation und Firebug sehr nützlich für mich, als ich es zu tun hatte, mein Hausaufgaben.

Viel Glück mit Ihnen. :)

Ich würde an der Quelle zu etwas empfehlen, die aussehen wie Light .

http://www.manning.com/hethmon/ - „Illustrated Guide to HTTP von Paul S. Hethmon“von Manning ist ein sehr gutes Buch HTTP-Protokoll zu lernen und wird sehr nützlich sein, um jemand deren Umsetzung / ihre Ausdehnung.

Verwenden plattformspezifische Socket-Funktionen des HTTP-Protokolls verkapseln, wie Jungs hinter Apache tat .

Es gibt ein Duplikat mit mehr Antworten .

Ein Kandidat noch nicht erwähnt ist SPServer .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top