Requêtes/Réponses http

Mad Ant Messages postés 12 Statut Membre -  
sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   -
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 33284 Date d'inscription   Statut Modérateur Dernière intervention   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 33284 Date d'inscription   Statut Modérateur Dernière intervention   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 33284 Date d'inscription   Statut Modérateur Dernière intervention   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