Requêtes/Réponses http

Mad Ant Messages postés 12 Statut Membre -  
sebsauvage Messages postés 33415 Statut Modérateur -
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

Utilisateur anonyme
 
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 ! :@)
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
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 ! :)
0
jisisv Messages postés 3678 Statut Modérateur 935
 
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.
0
Mad Ant
 
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
0

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

Posez votre question
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
(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.
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
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.
0