Hypertext Transfer Protocol - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

HTTP 1.0

Le protocole HTTP 1.0, décrit dans le RFC 1945, prévoit l'utilisation d'en-têtes inspirés de MIME. La gestion de la connexion reste identique à HTTP 0.9 : le client établit la connexion, envoie une requête, le serveur répond et ferme immédiatement la connexion.

Une requête HTTP présente le format suivant :

           Ligne de commande (Commande, URL, Version de protocole)           En-tête de requête           [Ligne vide]           Corps de requête      

Les réponses HTTP présentent le format suivant :

           Ligne de statut (Version, Code-réponse, Texte-réponse)           En-tête de réponse           [Ligne vide]           Corps de réponse      

Requête :

      GET /page.html HTTP/1.0      Host: example.com      Referer: http://example.com/      User-Agent: CERN-LineMode/2.15 libwww/2.17b3      

La version du protocole HTTP est précisée suite à l'URI. La requête doit être terminée par un double retour à la ligne (CRLFCRLF). HTTP 1.0 supporte aussi les méthodes HEAD et POST. On constate l'usage d'en-têtes inspirés de MIME pour transférer les méta-données :

Host
Permet de préciser le site Web concerné par la requête, ce qui est nécessaire pour un serveur hébergeant plusieurs sites à la même adresse IP (name based virtual host, hôte virtuel basé sur le nom). C'est le seul en-tête réellement important.
Referer
Indique l'URI du document qui a donné un lien sur la ressource demandée. Cet en-tête permet aux webmasters d'observer d'où viennent les visiteurs.
User-Agent
Indique le logiciel utilisé pour se connecter. Il s'agit généralement d'un navigateur Web ou d'un robot d'indexation.

Réponse :

      HTTP/1.0 200 OK      Date: Fri, 31 Dec 1999 23:59:59 GMT      Server: Apache/0.8.4      Content-Type: text/html      Content-Length: 59      Expires: Sat, 01 Jan 2000 00:59:59 GMT      Last-modified: Fri, 09 Aug 1996 14:21:40 GMT            Exemple      

Ceci est une page d'exemple.

La première ligne donne le code de statut HTTP (200 dans ce cas).

Date
Moment auquel le message est généré.
Server
Indique quel modèle de serveur HTTP répond à la requête.
Content-Length
Indique la taille en octets de la ressource.
Content-Type
Indique le type MIME de la ressource.
Expires
Indique le moment après lequel la ressource devrait être considérée obsolète ; permet aux navigateurs Web de déterminer jusqu'à quand garder la ressource en mémoire cache.
Last-Modified
Indique la date de dernière modification de la ressource demandée.

Liste de serveurs HTTP

  • C : Apache, Zeus Web Server, nginx, lighttpd
  • C# : IIS
  • Java : Tomcat, Jetty
  • Python : Zope
  • Ruby : Mongrel
  • Erlang : Yaws
  • Autres : (en) Comparison of web servers

HTTPS

HTTPS (avec S pour secured, soit « sécurisé ») est la simple combinaison de HTTP avec une couche de chiffrement comme SSL ou TLS.

Il permet au visiteur de vérifier l'identité du site auquel il accède grâce à un certificat d'authentification. Il garantit la confidentialité et l'intégrité des données envoyées par l'utilisateur (notamment des informations entrées dans les formulaires) et reçues du serveur.

Il est généralement utilisé pour les transactions financières en ligne : commerce électronique, banque en ligne, courtage en ligne, etc. Il est aussi utilisé pour la consultation de données privées, comme les courriers électroniques par exemple.

Par défaut, les serveurs HTTPS sont connectés au port TCP 443.

HTTPS et piratage

La sécurité des informations transmises par HTTPS est basée sur l'utilisation d'un algorithme de chiffrement et de l'éventuel certificat d'authentification.

Partant du principe que les internautes précisent rarement le type de protocole dans les URLs (le protocole HTTP étant sélectionné par défaut) et se contentent de suivre des liens, un chercheur en sécurité informatique a développé une attaque du type man in the middle afin de contourner le chiffrement de HTTPS. Le pirate se positionne entre le client et le serveur et change les liens https: en http:, ainsi le client envoie ses informations en clair via le protocole HTTP et non HTTPS. Ce type d'attaque a été présenté par Moxie Marlinspike à la Blackhat Conference 2009. Durant cette conférence il a non seulement présenté le fonctionnement de l'attaque mais également quelques statistiques d'utilisation. Il a réussi à récupérer plusieurs centaines d'identifiants, informations personnelles et numéros de cartes bancaires en 24 heures, personne ne s'est douté de l'attaque en cours.

Page générée en 0.093 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise