J'ai besoin de créer un serveur HTTP simple en C. Des conseils? Liens? Des échantillons?
c
httpserver
Nathan H
la source
la source
Réponses:
Je vous suggère de jeter un œil au petit httpd . Si vous voulez l'écrire à partir de zéro, vous voudrez bien lire la RFC 2616 . Utilisez les sockets BSD pour accéder au réseau à un niveau très bas.
la source
tiny httpd
est également sur github ici: github.com/larryhe/tinyhttpdJe vous recommande de jeter un œil à: Un guide pratique pour écrire des clients et des serveurs
Ce que vous devez implémenter par étapes incrémentielles est:
la source
Un serveur HTTP est conceptuellement simple:
Cela devient plus difficile en fonction de la quantité de HTTP que vous souhaitez prendre en charge - POST est un peu plus compliqué, les scripts, la gestion de plusieurs requêtes, etc.
Mais la base est très simple.
la source
Mongoose (anciennement Simple HTTP Daemon) est plutôt bon. En particulier, il est intégrable et compile sous Windows, Windows CE et UNIX.
la source
Ouvrez une socket TCP sur le port 80, commencez à écouter les nouvelles connexions, implémentez ceci . Selon vos objectifs, vous pouvez ignorer presque tout. Au plus simple, vous pouvez envoyer la même réponse pour chaque requête, ce qui implique simplement d'écrire du texte sur le socket.
la source
Regardez nweb (Nigel's Web Server), "un petit serveur Web sécurisé [...] avec seulement 200 lignes de code source C":
https://drive.google.com/file/d/0B3msld7qnNOhN1NXaFIwSFU2Mjg/view?usp=sharing
http://www.ibm.com/developerworks/systems/library/es-nweb/L'article comprend un pseudocode, des explications et des commentaires.
EDIT: le lien d'IBM est mort. J'ai enregistré un PDF de la page Web sur Google Drive. Voici le téléchargement du code:
https://drive.google.com/file/d/0B3msld7qnNOhSGZGdDJJMmY0VHM/view?usp=sharing
@ ankushagarwal a apporté quelques modifications et a téléchargé sa version sur GitHub: https://github.com/ankushagarwal/nweb
la source
J'ai écrit le mien que vous pouvez utiliser. Celui-ci fonctionne avec sqlite, est thread-safe et est en C ++ pour UNIX.
Vous devriez être en mesure de le séparer et d'utiliser le code compatible C.
http://code.google.com/p/mountain-cms/
la source
Les spécifications HTTP et Firebug m'ont été très utiles lorsque je devais le faire pour mes devoirs.
Bonne chance avec le vôtre. :)
la source
Je suggérerais de regarder la source à quelque chose comme lighthttpd .
la source
http://www.manning.com/hethmon/ - "Illustrated Guide to HTTP par Paul S. Hethmon" de Manning est un très bon livre pour apprendre le protocole HTTP et sera très utile à quelqu'un qui l'implémente / l'étend.
la source
Utilisez les fonctions de socket spécifiques à la plate-forme pour encapsuler le protocole HTTP, comme l'ont fait les gars derrière Apache .
la source
Il y a un doublon avec plus de réponses .
Un candidat non encore mentionné est spserver .
la source