HTTP - Le protocole de l'Internet

Introduction

Le protocole HTTP est décrit dans la RFC 2616. Pour plus de détails, je vous conseille de la télécharger.

Pour shématiser, c'est un protocole texte qui permet l'échange de composants (documents, images, fichiers executables).A l'heure actuelle, ce protocole est devenu incontournable et il est de plus en plus utilisé. Il sert de protocole de transport au protocole SOAP.

Le port par défaut du protocole HTTP est 80.

Pour réaliser des tests, on peut se limiter à la version 1.0. Dans ce cas, chaque échange de composants donne lieu à une nouvelle connexion TCP/IP.

La version 1.1 du protocole normalise principalement les instructions de cache, le pipeline (envoi de plusieurs requêtes l'une à la suite de l'autre sans attendre les réponses) et les connexions persistantes (possibilité d'utiliser la même connexion pour plusieurs requêtes)

requête simple

Une requête HTTP a l'allure suivante :

GET /monfichier.txt HTTP/1.0
Host: www.monserver.com

Si on doit passer par un proxy :

GET http://www.monserver.com/monfichier.txt HTTP/1.0
Host: www.monserver.com

En C, cela donne :

char szRequete[] = 
"GET /monfichier.txt HTTP/1.0\r\n"
"Host: www.monserver.com\r\n"
"\r\n"

On remarque que la requête se termine par 2 "\r\n"

Réponse simple

La réponse à la requête précédente peut être :

HTTP/1.0 200 OK
Content-Type: text/plain
Connexion: Close

coucou

En C, cela donne :

char szReponse[] = 
"HTTP/1.0 200 OK\r\n"
"Content-Type: text/plain\r\n"
"Connexion: Close\r\n"
"\r\n"
"coucou"

Comme pour la requête, on remarque que la réponse se termine par 2 "\r\n"

Code

Valid XHTML 1.0!