Je cherche à développer un petit serveur Web (lire: rudimentaire) sur une plate-forme Linux et je ne sais pas par où commencer.
Ce que je veux pouvoir faire, c’est:
Je suis familier avec les en-têtes HTTP et je suis un développeur expérimenté de PHP et de .Net, mais je ne sais pas trop par où commencer.
Pouvez-vous me conseiller avec quelques ressources pour aborder la courbe d’apprentissage?
De haut en bas, vous devez savoir:
Vous devrez donc apprendre à écrire une application Unix de base, la programmation de socket BSD pour la programmation réseau TCP / IP et le protocole HTTP.
Les textes couramment utilisés comprennent:
Développement d’applications Unix:
Programmation TCP / IP (sockets):
Protocole HTTP
Pour un serveur HTTP SIMPLE / BASIC / ULTRA-LIGHT, le stream de programme devrait être similaire (en pseudo-code):
----Main thread---- Load settings while true do Wait for connection Connection received, create a new thread and transfer this connection to this thread. end ----Connection thread---- Analyze request if dynamic content do Dump the HTTP request and send it to the interpreter Wait for response from the interpreter Read response header from the interpreter Stream response else if static content do Load requested file Stream file content end (Optional) Cache the response if size < X Send the response Close the socket
Vous devez donc apprendre le Threading, la communication interprocessus (si vous souhaitez interagir avec un interprète), la programmation des sockets et le protocole HTTP.
Tous les détails ne peuvent pas être expliqués ici
Visitez http://www.linuxhowtos.org/C_C++/socket.htm pour créer un serveur de base en utilisant C.
Un autre par IBM: http://www.ibm.com/developerworks/systems/library/es-nweb/index.html
Vous pouvez toujours commencer par une base de code existante. boa peut être un début car il est petit, implémenté en C et adapté à votre exigence de “démarrage à l’amorçage”; les détails sont par exemple dans le paquet Debian / Ubuntu.
http://en.wikipedia.org/wiki/Comparison_of_lightweight_web_servers
merci encore wikipedia
BTW – vous pourriez vouloir Google “open source serveur Web intégré”
(www) .ibm.com / developerworks / web / library / wa-ltwebserv /
Avec la bibliothèque libevent, vous pouvez écrire un serveur Web en 40 lignes de code c.
http://www.ruilog.com/article/view/5249.html
Si vous voulez le créer à partir de zéro, vous pouvez faire référence à un serveur Web open source écrit en c comme lighttpd, apache, nginx.