IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Serveurs (Apache, IIS,...) Discussion :

Réponse HTTP pour l'envoi d'image


Sujet :

Serveurs (Apache, IIS,...)

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Réponse HTTP pour l'envoi d'image
    Bonjour,

    Dans un exercice à but pédagogique, j'ai réalisé un serveur web en C qui renvoie la page web demandé par un navigateur. Ma réponse HTTP est donc composé de l'en-tête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char * debut_requete = "HTTP/1.1 200 OK\r\nServer: CPE HTTP Server 1.0\r\nContent-Type: text/html\r\n\r\n";
    à laquelle j'ajoute le corps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html>
      <head>
        <title>Ma page Web</title>
      </head>
      <body><i>Bonjour, bonjour !</i></body>
    </html>
    Donc ça ça marche et je suis bien content. Maintenant je voudrais perfectionner mon serveur en traitant l'envoi d'image. D'où ma question : Que doit contenir le corps de ma réponse dans le cas d'une image ?

    Tout les exemples de réponse que j'ai pu voir sur le net avait Content-type: text/html, jamais vu de réponse de type image/jpeg ou image/gif

    Merci d'avance!
    Cuicui

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par Cuicui45 Voir le message
    Tout les exemples de réponse que j'ai pu voir sur le net avait Content-type: text/html, jamais vu de réponse de type image/jpeg ou image/gif
    C'est bien dommage car il faut effectivement préciser le type de ton image : pour une image GIF, faut Content-Type: image/gif, pour une image JPEG c'est Content-Type: image/jpeg, etc. Tu trouveras les différents types (types MIME) sur le Web assez facilement, je pense.

    Pour le corps de la réponse, c'est tout simplement le code de l'image. Idéalement, il faut préciser aussi un Content-Length dans tes en-têtes, si tu le connais. C'est pour optimiser le chargement des pages surtout si la connexion entre le client et le serveur est maintenue (Connection: keep-alive) : en effet, si la connexion est maintenue et qu'aucun Content-Length n'a été envoyé, le navigateur ne sait pas quand il a fini de recevoir des infos, donc ta connexion est maintenue indéfiniement (ou presque) et donc tu ne bénéficies pas de l'intérêt du keep-alive. Dans ton cas, si tu ne prévois pas de faire de keep-alive, envoie un en-tête Connection: close et coupe la connexion lorsque les données ont été envoyées au client.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Pour le corps de la réponse, c'est tout simplement le code de l'image.
    Alors c'est ce point là qui est obscur justement. Si j'ai bien compris le "code de l'image" c'est la "traduction" en binaire de l'image que le navigateur sait interprèter quand il voit un content-type image/gif ou image/jpeg.
    Mais comment obtenir ce code ?

    Citation Envoyé par _Mac_ Voir le message
    Dans ton cas, si tu ne prévois pas de faire de keep-alive, envoie un en-tête Connection: close et coupe la connexion lorsque les données ont été envoyées au client.
    Ouep, ça c'est fait

    Bien à vous
    Cuicui

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Citation Envoyé par Cuicui45 Voir le message
    Alors c'est ce point là qui est obscur justement. Si j'ai bien compris le "code de l'image" c'est la "traduction" en binaire de l'image que le navigateur sait interprèter quand il voit un content-type image/gif ou image/jpeg.
    Mais comment obtenir ce code ?
    C'est comme un fichier HTML : tu ouvres le fichier, tu le lis bit à bit (ou octet par octet) et tu envoies ce que tu as lu directement au navigateur. Il n'y a aucune transformation à appliquer. Le navigateur va donc recevoir du code binaire mais il sera content avec ça car le Content-Type lui dira comment interpréter ce qu'il reçoit. Si tu connais un peu PHP, ça revient à faire un readfile($mon_fichier_image).

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Ok, mais le soucis, c'est qu'avec mon programme C, je peux ouvrir un fichier HTML avec fopen pour recuperer ce qu'il y a dedans, mais pas un fichier image...

    Mais j'ai bien tout compris à la chose, et je te remercie

    Je vais farfouiller sur comment obtenir mon code binaire et au besoin, j'appelerai à l'aide dans la section C/C++.

    Bien à vous
    Cuicui

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Simple Server Http et envoi d'image
    Par Pandi_Panda dans le forum Débuter
    Réponses: 6
    Dernier message: 12/11/2014, 17h10
  2. Réponses: 1
    Dernier message: 05/07/2014, 15h14
  3. [iOS 4.x] Envoi d'image via requête http a un serveur distant
    Par salma.mathlouthi dans le forum Objective-C
    Réponses: 0
    Dernier message: 26/10/2012, 16h28
  4. [JMeter] Envoi données XML par http pour une servlet
    Par thierry_b dans le forum Tests et Performance
    Réponses: 3
    Dernier message: 08/01/2009, 16h16
  5. Envoi HTTP pour plate forme SMS : comment ?
    Par Invité dans le forum Langage
    Réponses: 6
    Dernier message: 20/07/2006, 09h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo