[c] Coder un serveur web

Fermé
XD - 20 nov. 2006 à 19:59
phunk Messages postés 498 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 30 novembre 2006 - 21 nov. 2006 à 15:05
Bonjour,

Etant élève en 1ère année de cycle ingénieur, il m'a été demandé de réaliser un serveur web de A... à Z mais j'y connais franchement rien ! o_O
Je me demandais si quelqu'un connaissait un livre ou un site sur le sujet qui pourrait m'être super utile !

Merci d'avance.
Ciao
A voir également:

9 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
21 nov. 2006 à 10:53
Dans l'absolu, c'est pas très compliqué.

En gros, c'est un socket serveur (généralement en écoute sur le port 80).

Le navigateur vient se connecter sur ce port 80 et envoie:
GET /repertoire/fichier HTTP/1.1

ou bien:
GET http://monserveur.com/repertoire/fichier HTTP/1.1


Ce à quoi le serveur répond par:
HTTP/1.1 200 OK
Content-Length: 333
Content-Type: text/html; charset=iso-8859-1

suivi de 2 retours à la ligne, puis le fichier lui-même.

Il y a quelques raffinements (par exemple le navigateur peut dire quelle est sa language, le serveur peut indiquer l'âge du fichier, etc.), mais le principe est là.



Le gros du boulot, ça va être:

- de parser les requêtes qui arrivent (extraire l'URL et d'éventuel paramètres)

- écrire le dispatcheur d'URLs (exécuter des méthodes différentes en fonction des URL, ou bien renvoyer des fichiers stockés sur disque)

- construire la réponse (choisir le Content-Type correspondant au fichier (ex: 'image/jpeg' pour les fichiers .jpg), envoyer un code erreur HTTP précis (404 si document pas trouvé, etc.).
9
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
21 nov. 2006 à 01:18
Tu peux partir des sources d'apache mais alors là bon courage.
Essaye de regarder ici si tu trouves ton bonheur :
https://codes-sources.commentcamarche.net/

Bonne chance
1
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
21 nov. 2006 à 04:57
L'univers des serveurs http Open Source ne se limite pas à Apache
http://www.lighttpd.net/
http://www.roxen.com/solutions/cms/
http://caudium.net/
...
J'ai utilisé un mini serveur dont je ne me rappelle plus le nom sous FreeBSD il y a quelques années, j'essayerai de retrouver le nom et un lien.

...
1
phunk Messages postés 498 Date d'inscription lundi 31 juillet 2006 Statut Membre Dernière intervention 30 novembre 2006 193
21 nov. 2006 à 15:05
Oui dans l'absolu y a rien de compliqué si tu te limite au basique, dès lors que tu sais manipuler les sockets dans le langage qu'on t'a imposé. Après c'est comme tout, on peut pousser très loin le schmilblick.

Y a un truc qui m'étonne beaucoup : "Etant élève en 1ère année de cycle ingénieur, il m'a été demandé de réaliser un serveur web de A... à Z mais j'y connais franchement rien !"
A moins de me tromper, je ne vois qu'une seule école qui applique ce principe stupide du "tiens voilà un sujet, tu te démerdes". Sans vouloir troller, c'est du côté de la porte d'Italie non ??
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci beaucoup ! Je pensais plus à quelque chose comme des cours mais les liens que vous m'avez donné vont m'être super utiles ! :)
0
oberion Messages postés 1253 Date d'inscription mardi 26 septembre 2006 Statut Membre Dernière intervention 29 septembre 2007 248
21 nov. 2006 à 09:41
Hello,
Ce n'est pas si compliqué.
Il te faudra des notions de sockets. Il te faudra te renseigner sur la RFC HTTP (je ne me rappelle plus exactement du numero).
0
blux Messages postés 26546 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 décembre 2024 3 319
21 nov. 2006 à 09:50
Salut,

il y a xitami qui est codé en C et en open source...

Il est très léger, tu peux sûrement t'en inspirer...

http://www.xitami.com
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
21 nov. 2006 à 10:55
Après il y a d'autres problématiques à gérer, comme les accès concurrents (plusieurs connexions à la fois), mais c'est déjà plus velu (programation multi-thread ou sockets asynchrones).
0
blux Messages postés 26546 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 24 décembre 2024 3 319
21 nov. 2006 à 11:03
La RFC de HTTP est dispo ici :

http://www.faqs.org/rfcs/rfc2616.html
0