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.