HTTP Server/Webserver programmieren in C

dragonabllz

Ensign
Registriert
Mai 2011
Beiträge
254
Hi Leute,

ich möchte mich in der Materie "Webserver" einlesen und einen einfachen Webserver programmieren können (mit C), der grundlegende Sachen können muss (also nicht übertrieben, möchte klein anfangen):

1. Parsen und Auswerten von HTTP-Anfragen
2. Bereitstellen von HTML Dateien (JavaScript, JPGs, etc...)
3. Unterstützung von "Virtual Hosts"
Und sollte mit gängigen Browsern funktionieren.

Die Sache ist die: In unserem Kurs haben die Allermeisten Fachabi mit Richtung IT gemacht und haben alle Erfahrungen mit Servern etc... Ich hingegen habe Allgemein-Abitur gemacht und habe wirklich Null Ahnung von Servern etc... und bitte euch deshalb um Hilfe. Gibt es ein gutes Buch das mich in dieser Materie einführt und mir erlaubt, solch ein grundlegenden Webserver zu programmieren mit C ? Oder eine gute Seite/Tutorial ?
Ich musste zum Beispiel sogar googlen was "Parsen" und "HTTP" bedeutet *schäm mich*.
Wie gesagt, hab wirklich auf diesem Gebiet Null Ahnung. Bin aber mit C vertraut.


Wäre euch für jede Hilfe sehr dankbar
 
http://beej.us/guide/bgnet/ als kurzes schnelles Tutorial, hauptsächlich für Unix.

Allerdings gehört "parsen" direkt zum Wortschatz jedes Programmierers, egal in welche Programmiersprache, das hat mit Netzwerkprogrammierung nix zu tun. Ich weiß also nicht ob dir das kurze Tutorial als Einstieg reicht.
 
Ich hätte vielleicht noch erwähnen sollen, dass ich ausschließlich deutsche Bücher/Tutorials suche (ich weiss, dass man als Programmierer Englisch beherrschen sollte, aber dass ich ein ganzes Buch/PDF auf englisch lese, dazu ist mein englisch wirklich zu schlecht). Mein Fehler.

Ich habe z.B. folgendes Buch in Amazon gefunden:
http://www.amazon.de/Grundkurs-Sock...087295&sr=8-2&keywords=netzwerkprogrammierung 

In der Beschreibung steht:
"Das Buch bietet einen schnellen und einfachen Einstieg in die Programmierung von Web-Browsern und Web-Servern mit Hilfe von Sockets. Die hier vorgestellten Anwendungen sind schlank, d. h. äußerst ressourcenschonend und daher besonders für Embedded-Systems geeignet."

Einzig das Wort "Sockets" bringt mich etwas durcheinander. Was meint ihr?

PS: Danke für die schnelle Hilfe
 
Das RFC 2616 spezifiziert das HTTP Protokoll, dort findest du alle Eigenschaften die dein Server implementieren muss.

Warum bringt dich Sockets durcheinander ?:) Ohne die keine Kommunikation :) Ohne Englisch ist es natürlich schwergängig, wenn du nicht so viel Programmiererfahrung hast dann solltest du erstmal etwas anderes Programmieren oder eben den steinigen Weg gehen und dir alles selbst beibringen. :) Aber wie gesagt, die meisten nützlichen Sachen im Internet zum Thema Programmieren sind halt in Englisch. Lesend solltest du das sehr gut verstehen können. Ist quasi ein muss !
 
Zuletzt bearbeitet:
Noch eine kleine Anmerkung: Wir sollen den Webservern in einer Linux-Distribution /Umgebung programmieren mit C. Wollte das nur anmerken, vllt ist das wichtig zu wissen?
Ergänzung ()

G!N schrieb:
Das RFC 2616 spezifiziert das HTTP Protokoll, dort findest du alle Eigenschaften die dein Server implementieren muss.

Warum bringt dich Sockets durcheinander ?:) Ohne die keine Kommunikation :) Ohne Englisch ist es natürlich schwergängig, wenn du nicht so viel Programmiererfahrung hast dann solltest du erstmal etwas anderes Programmieren oder eben den steinigen Weg gehen und dir alles selbst beibringen. :) Aber wie gesagt, die meisten nützlichen Sachen im Internet zum Thema Programmieren sind halt in Englisch. Lesend solltest du das sehr gut verstehen können. Ist quasi ein muss !

Du hast selbstverständlich Recht, ich werde in Zukunft auch versuchen wieder Englisch zu lernen. :)
Also wenn Sockets dazugehören, was hälst du von dem Buch das ich oben gepostet habe? Meinst du es ist genau das was ich suche? Ist ja zum Glück in deutsch :)
 
Um erstmal mit dem HTTP Protokoll warm zu werden könntest du auch mit dem Linux Kommando "nc" (Netcat) einen normalen HTTP-Verkehr zusammenskripten, danach weißt du sicherlich auch was "parsen" bedeutet :)

Der Server an sich in C ist dann garnicht so schwer, aber dafür brauchts kein Buch. Es gibt echt viele Tutorials im Netz.
 
Eine weitere Fragestellung: Sollen mehrere Clients parallel bedient werden? Dann muss man nämlich noch in die Basics des Multithreadings mit Fork einsteigen.
 
Nein, es muss nur diese grundlegende Funktion können, die ich oben erwähnt habe. Danke soweit für eure Hilfe. Mich würde immer noch interessieren, ob das o.g. Buch dieses Thema hier behandelt. Denn mir persönlich sind Bücher lieber als Online-Tutorials ;)
Dennoch bin ich für weitere Links und PDFs offen ;)
Nochmals Vielen Dank
 
Zuletzt bearbeitet:
Zurück
Oben