Le protocole HTTP (HyperText Transfer Protocol) est le protocole réseau utilisé par les navigateurs Web (Firefox, Internet Explorer...) et les serveurs Web (Apache, IIS...) pour communiquer entre eux. C'est lui qui est utilisé par exemple pour obtenir un fichier HTML, une image, poster un formulaire Internet. Il est donc au cœur de l'Internet.

 

Avec le protocole HTTP la communication entre un navigateur et un serveur Web est finalement assez simple. En voici le déroulé :

 

·         une URL telle que http://www.monsite.com/fichier.html est donnée au navigateur par un internaute

 

·         le navigateur en extrait le nom de domaine 'www.monsite.com' et à partir de cette information sait comment
trouver le serveur Web distant

 

·         à partir de là une connexion est établie entre le navigateur et le serveur Web distant

 

·         une requête HTTP demandant la ressource '/fichier.html' est alors transmise par le navigateur

 

·         le serveur Web trouve la ressource correspondante et en renvoie le contenu dans une réponse HTTP

 

·         le navigateur est désormais capable d'afficher le fichier HTML à l'internaute

 

En-tête HTTP d'une requête

 

Voici un exemple d'entête de requête envoyé par un navigateur tel que Safari:

 

GET /fichier.html HTTP/1.1           Requête Resssource cible Version du protocole

 

Host: www.monsite.com                Nom du domaine du serveur

 

User-Agent: Mozilla/5.0 Safari/531.9 Identification du navigateur

 

Accept: text/html                    Le client va recevoir du HTML

 

Les 2 types de requête les plus connus sont :

 

·         GET :  pour 'obtenir' une ressource. C'est bien entendu la requête la plus utilisée.

 

·         POST : pour envoyer le contenu d'un formulaire HTML

 

 

 

En-tête HTTP d'une réponse

 

Voici un exemple d'entête de réponse renvoyé par un serveur Web tel que Apache :

 

HTTP/1.1 200 OK

 

Date: Thu, 24 Sep 2009 19:37:34 GMT

 

Server: Apache/2.2.3

 

Content-Length: 7234

 

Content-Type: text/html; charset=UTF-8

 

 [ici se trouve le corps (body) de la réponse]

 

La première ligne de la réponse contient toujours le 'code' HTTP indiquant si la requête a réussi ou pas. Puis, comme pour la réponse, on trouve les lignes des champs HTTP. Tout ceci constitue l'en-tête de la réponse. Ensuite se trouve le corps de la réponse, qui dans le cas d'un GET d'un fichier HTML contient par exemple le code HTML de la page visée.

 

Même en tant que simple internaute, on peut être confronté à des codes de réponse HTTP (par exemple quand on tape une URL incorrecte). Voici une description des principales valeurs à connaitre :

 

Code HTTP

Explication

Code HTTP 200 : Ok

Cela signifie que tout va bien et que le serveur Web renvoie le contenu d'une ressource dans le corps (body) de la réponse

Code HTTP 301 : Moved Permanently

C'est une redirection permanente vers une URL indiquée dans la réponse.

Code HTTP 400 : Bad request

Cela signifie que la requête reçue par le serveur Web ne respecte pas le format défini par le protocole HTTP

Code HTTP 401 : Unauthorized

Cela signifie que l'accès à l'URL est sécurisée. Le serveur Web vous demande ainsi de lui indiquer un login/mot de passe

Code HTTP 404 : File not found

Cela signifie que le serveur Web n'a pas trouvé de ressource correspondant à l'URL indiquée

Code HTTP 500 : Internal Error

Cela signifie que le serveur Web n'a pas été capable de traiter la requête HTTP. Cela peut indiquer un problème très sérieux.

 

 

 

HTTPS est la version sécurisée du protocole http, un cadenas s’affiche dans le navigateur. Elle protège les données échangées en ne les rendant compréhensibles que par le destinataire.