Requêtes/Réponses http

Salut à tous.
J'aimerais savoir : y a-t-il une séquance de chaines de caractères spéciales à la fin d'une requête ou réponse http, du genre '\r\n\r\n' ?
Je dois programmer un serveur web légér et compacte, et donc je dois pouvoir analyser les requêtes http et renvoyer les réponses.
Tout aide sera le bienvenu.

Mad Ant

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Très interressant comme projet.
    As tu été voir la RFC, car c'est le genre de truc qui y sera indiqué.
    En plus, t'as du bol, il a été traduit ! http://www.salemioche.com/http/1945tm.php

    A+ !

    Kalamit,
    La nuit, tous les chats sont gris. Pas les poulets ! :@)
    1. Modérateur
      Oui la RFC donnera la réponse.

      Pour résumer: la fin de l'entête HTTP est marquée par 2 retours à la ligne.
      (attention c'est pas forcément \r\n\r\n, ça peut très bien être \n\n seulement.)

      Histoire de ne pas réinventer la roue, pour un serveur web léger et compacts, il y a:
      sous Windows: TinyWeb (avec les sources en Delphi): http://www.ritlabs.com/tinyweb/
      et pour les Unixs, micro_httpd (avec sources en C): http://www.acme.com/software/micro_httpd/
      (150 lignes de code seulement ! :)
      1. Modérateur
        Hi,
        Pour un serveur Web léger
        (j'ai compilé sans problème sous FreeBSD et Linux)
        http://abyss.sourceforge.net/

        Johan

        The software said "Requires Windows98, Win2000, or better,
        So I installed Unix.
        1. Merci à ceux qui ont répondu.

          Concernant le http, je l'ai lu et j'ai vu qu'il fallait 2 retours à la ligne (CRLF) entre l'en-tête et le corps, mais rien pour la fin du corps. Si qqn savait m'indiquer la partie du rfc qui l'indique, ce serait bien aimable.

          Mad Ant
          1. Modérateur
            (c'est marqué dans la RFC, mais bon...)

            Soit la taille du corps est indiquée dans l'entête HTTP (Content-Length:), soit c'est à la fermeture de la connexion TCP qu'il faut considérer les données comme terminées.

            çà dépend des serveurs.
            1. Modérateur
              Pour compléter:

              La best-practice est d'indiquer la taille des données dans l'entête HTTP, mais dans la pratique ça peut devenir compliqué avec les envoi multipart.

              Tant que c'est possible, utiliser le content-length. C'est plus sûr, et c'est plus poli envers le client.