Requête HTTP GET

Résolu/Fermé
TiuSh Messages postés 3 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 7 juillet 2009 - 6 juil. 2009 à 18:18
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 7 juil. 2009 à 19:20
Bonjour,

Je suis en train de développer un serveur Web embarqué simplifié. Pour cela j'ai déjà réussi à interpréter et répondre aux requêtes GET quand il s'agit de pages HTML. Mais lorsque j'essaie de répondre à une requête GET concernant une image, seul le nom de l'image s'affiche dans mon navigateur.
Voici la réponse que j'envoie au client:

Requête :
GET /img.jpg (...)

Réponse :
HTTP/1.0 200 OK
Content-Length: 3032
Content-Type: image/jpeg

[contenu de l'image]

Est ce que j'ai oublié quelquechose?

Merci!

6 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
6 juil. 2009 à 19:10
Tu termines bien chaque fin de ligne par \r\n ?

Bonne chance
0
TiuSh Messages postés 3 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 00:40
Oui, sauf à la fin du contenu de l'image.
Pourtant le serveur transmet bien l'image, et le browser reçois très bien les pages web...
Je ne vois vraiment pas d'où peu venir le problème...

Merci quand même pour ta réponse mamiemando.
0
Bonjour

Tu as sans doute déjà vérifié tout ça, mais comme ça ne se bouscule pas pour te répondre...

Les en-têtes sont bien séparées des données par une ligne vide (c'est à dire dire deux fois \r\n après "image/jpeg" ?
Je trouve étrange que ta page affiche le nom de ton image, alors que ce nom ne figure pas dans les données de l'image (en tous cas pas dans l'image sur laquelle j'ai fait une vérification). As-tu un moyen (logiciel de capture de paquets par exemple) pour vérifier ce qui sort réellement de ton serveur (le contenu de l'image et pas son nom ) ?
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
7 juil. 2009 à 10:41
Ton header http doit être envoyé en ANSI avec des \r\n en fin de ligne. Peut être qu'il manque des champs dans ton header nécessaire pour le transfert d'une image, il faudrait que tu vérifies sur le site du w3c.

Vérifie également que la taille que tu mets dans le header correspond à la taille de la séquence binaire associée à ton image. L'idéal serait que tu installes un serveur apache avec cette image et que tu la récupères avec un navigateur et que tu compares les échanges entre ton navigateur et entre les deux types de serveur.

Pour cela, essaye d'installer wireshark pour voir ce qui circule. Capture le trafic sur ta carte réseau. Lance une capture et récupères l'image avec ton navigateur. Tu devrais voir apparaître des paquets http. Sélectionne en un et fais clic droit, "follow TCP stream". Tu devrais rapidement voir ce qui cloche ;-)

Bonne chance
0

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

Posez votre question
TiuSh Messages postés 3 Date d'inscription lundi 6 juillet 2009 Statut Membre Dernière intervention 7 juillet 2009
7 juil. 2009 à 13:55
@ "le père" : J'ai bien deux sauts de lignes entre le header et le contenu de mon image.
En fait, quand je dit qu'il n'y a que le nom de l'image qui apparait, je veux parler de l'adresse ou se trouve l'image ("http://192.168.0.4:10001/img.jpg"). Et pourtant j'ai bien vérifié ce qui sort du serveur en utilisant NetCat, cela ressemble bien aux données d'une image (bien que je ne sais pas comment vérifier s'il s'agit effectivement d'une image).

@ mamiemando : je viens d'installer WireShark, mais mon interface Wifi "wlan0" n'apparait pas dans les options de capture... Mais a priori il ne devrait pas y avoir d'erreur dans la taille de l'image puisque celle ci est "générée" sur la plateforme qui acceuille mon serveur, donc je connais sa taille exacte.

Edit: C'est bon j'ai trouvé le problème! Ça n'avait rien a voir avec les protocoles... En fait, lors de la compression de l'image, la plateforme en question rajoutait un header au début de l'image. En le supprimant, l'image est enfin apparue dans mon browser.

Merci pour votre aide!
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
7 juil. 2009 à 19:20
Ok, merci pour le complément d'information et bonne continuation !
0