Cours de C – Séance dexercices 02 Octobre 2007
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.
Protocole: Serveur Protocole – Réponse serveur HTTP/ 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 \r\n DATA
Première séquence Utiliser la structure définie dans 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
Seconde séquence 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
Troisième séquence Coder la fonction prepare_get_response – Lire le fichier – Remplir le buffer de la structure – Remplir la longueur – Remplir le Content-Type
Quatrième séquence 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