La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cours de C – Séance dexercices 19 Octobre 2007. Objectif Ecrire un serveur HTTP Sans gérer la partie réseau, on utilisera un utilitaire pour cela Serveur.

Présentations similaires


Présentation au sujet: "Cours de C – Séance dexercices 19 Octobre 2007. Objectif Ecrire un serveur HTTP Sans gérer la partie réseau, on utilisera un utilitaire pour cela Serveur."— Transcription de la présentation:

1 Cours de C – Séance dexercices 19 Octobre 2007

2 Objectif Ecrire un serveur HTTP Sans gérer la partie réseau, on utilisera un utilitaire pour cela Serveur gérant une seule requête

3 Protocole: client Protocole : – Requête client : GET /test.html HTTP/1.1\r\n Host: nom_de_l_hote\r\n Parameter: Value\r\n ….. \r\n Nécéssité de traiter les \r\n et les \n\n aussi.

4 Protocole: Serveur Protocole – Réponse serveur HTTP/1.0 200 OK\r\n – ( ou 404 Not Found, ou 500 Internal Error ) Content-Type: text/html\r\n – (ou image/jpeg, image/png, image/gif … ) Content-Length: 1242\r\n Connection: Close \r\n DATA

5 Etape 0 A laide de main_http.c et Struct_http.h créer le projet Rajouter à la main les fonctions manquantes (vides) Le faire compiler

6 Etape 1 Utiliser la structure définie dans http://people.via.ecp.fr/~henri/SA2008/.... http://people.via.ecp.fr/~henri/SA2008/ Struct_http.h Implémentation de la fonction read_request – Lire stdin jusquà la première ligne vide – Prévoir le cas où \r est converti en \n – Identifier le type de requête, et éventuellement appeler prepare_get_request

7 Etape 2 Implémentation de la fonction process_get_request – Trouver dans la première ligne le nom du fichier demandé (utiliser strchr) – Remplir la structure dont le pointeur est passé en argument

8 Etape 3 Coder la fonction prepare_get_response – Lire le fichier – Remplir le buffer de la structure – Remplir la longueur – Remplir le Content-Type

9 Etape 4 Coder la fonction post_response – Afficher dans lordre les métadonnées contenues dans la structure – \r\n – Afficher le contenu du buffer de réponse Cette fonction doit gérer les codes derreur RESPONSE_ERROR et RESPONSE_NOT_FOUND

10 Les astuces Le fichier : louvrir en lecture avec le more « rb », le « b » est TRES important Ajouter le mode binaire : _setmode(fileno(stdout), _O_BINARY); Penser que lutilitaire convertit les \r en \n !

11 On branche Utiliser le programme « netcat_modified » Le lancer avec largument « -L 8000 –e » Pointer le navigateur vers http://localhost:8000/test.html http://localhost:8000/test.html


Télécharger ppt "Cours de C – Séance dexercices 19 Octobre 2007. Objectif Ecrire un serveur HTTP Sans gérer la partie réseau, on utilisera un utilitaire pour cela Serveur."

Présentations similaires


Annonces Google