VT2015 HTTP20: Difference between revisions

From air
Jump to navigation Jump to search
Line 50: Line 50:


==Les évolutions du protocole==
==Les évolutions du protocole==
Après une présentation plutôt général du protocole nous allons maintenant nous intéresser à une parti plus technique afin de présenter les différentes évolutions des protocoles HTTPs
===HTTP0.9===
===HTTP0.9===
Première version de HTTP, apparue en 1990, elle n'est clairement plus supportée de nos jours. De plus cette version n'as pas était commercialisé (et donc pas de RFC y sont associé) et à l'époque le port utilisé était le 2784
Ses caractéristiques :

*seule la méthode GET existe : il est donc impossible d'envoyer des données vers les serveurs, la communication est unidirectionnelle ;
*il n'existe aucun type de fichier : seul le texte (text/plain) est géré ;
*il n'existe aucun code de retour HTTP, si le document n'existe pas, une page blanche est servie ;
*de manière générale la notion d'en-tête HTTP n'est pas définie.

Bref vous l'aurez compris, HTTP 0.9 est à peine plus haut que TCP : la connexion s'établit, le document, si trouvé, est rappatrié pour être affiché, et la connexion TCP est fermée, point final.
C'est très très limité, d'ailleurs chose rigolote : interrogez Google avec HTTP 0.9 et voyez le résultat ;-)

===HTTP1.0===
===HTTP1.0===
===HTTP1.1===
===HTTP1.1===

Revision as of 19:30, 17 October 2015

Contexte

Enseignants :

Georges-Pierre Bonneau, Didier Donsez (VT2015)

Sujet :

L’évolution du protocole HTTP

Auteur :

Thibault SAUSSAC

Date :

16 Octobre 2015

Mots clés

Protocole, Applicatif, Réseaux, Client-Serveur, Huffman, HTML, SPDY, HTTP, serveur Push


Résumé

Connaître le protocole HTTP permet d’anticiper certaines limitations de déploiement. Le protocole HyperText Transfert Protocol est un ensemble de règles qui régit la demande et l’envoi de pages web entre un client et un serveur. Le protocole HTTP délègue au protocole TCP (Transmission Control Protocole) l’envoi physique des données. Les clients sont généralement des navigateurs web qui se connectent via internet à des serveurs Web qui leur retournent les pages demandées. Toutefois il existe des applications qui utilisent ce protocole pour communiquer entre elles.

Aujourd’hui, Le protocole HTTP (HyperText Transfer Protocol) est le protocole le plus utilisé sur Internet depuis 1990 (malgré la concurrence de Gopher à l’origine). La version 0.9 était uniquement destinée à transférer des données sur Internet (en particulier des pages Web écrites en HTML). La version 1.0 du protocole permet désormais de transférer des messages avec des en-têtes décrivant le contenu du message en utilisant un codage de type MIME. Ensuite est arrivé la version 1.1 du protocole applicatif qui à permis l’utilisation du cache malgré des notions déjà présente dans sa version précédente. C’est ensuite le géant Google qui à fait parler son savoir faire en mettant en complément à HTTP le protocole SPDY sur la couche session. C’est véritable ca qui à crée le pont vers HTTP 2.0.

Le principale changement au fur et a mesure du temps et l’amélioration de la charge réseaux et de la vitesse des temps de chargement des pages web.

Abstract

Knowing the HTTP protocol allows anticipating certain deployment limitations. The HyperText Transfer Protocol protocol is a set of rules governing the application and sending web pages between a client and a server. HTTP delegates to TCP (Transmission Control Protocol) physical data is sent. Customers are usually web browsers that connect via the Internet to Web servers return the requested pages to them. However there are applications that use this protocol to communicate. Today, HTTP (HyperText Transfer Protocol) is the protocol used on the Internet since 1990 (despite originally Gopher competition). Version 0.9 was only intended to transfer data over the Internet (in particular Web pages written in HTML). Version 1.0 of the protocol now allows to transfer messages with headers describing the content of the message by using MIME type coding. Then came version 1.1 of the application protocol which allowed to cache usage despite notions already present in the previous version. It is then that the giant Google is talking to his knowledge by putting complement the SPDY HTTP protocol on the session layer. It was the way to create the bridge to HTTP2.0.

The main change as a measure of time and the improvement of network load and speed of web pages loading time.

Synthèse

Avant propos

Présentation Générale de HTTP

HTTP a été inventé par Tim Berners-Lee avec les adresses Web et le langage HTML pour créer le World Wide Web en 1990. C'est au CERN que le protocole est née. Le port utilisé est le 80 pour la version dites normale de HTTP, pour la version sécurisé le port 443 lui est réservé.

Comme vous pouvez le voir si dessus HTTP est un protocole au niveau application du modèle OSI. De meme que ce protocole est situé sur la couche transport TCP (afin de créer une connexion). Et donc de ce fait au dessus du protocole Réseaux Internet Protocole

Modèle OSI avec HTTP

HTTP est dit de SANS ETAT c'est à dire que aucune sauvegarde n'est faite entre deux transactions. Au niveau de l'architecture sur laquelle tourne HTTP est dites client-serveur, comme vous pouvez le voir sur l'image ci-dessous, le client Http demande au serveur une ressource identifier par une URI (Uniform Ressource Identifier) web sous forme de requêtes, le serveur lui répondra en lui envoyant le contenu de cette ressource. Le protocole applicatif peut être utilisé sans aucun problème avec un PROXY.

Modèle client/serveur avec HTTP

Les requêtes et réponses HTTP

Voici ci dessous un exemple de requête HTTP qu'un client doit envoyer au serveur, on y trouve la méthode, l'URI, la version du protocole et l'entête de la requête. Pour la partie réponse c'est le meme principe, l'exception du code de retour qui peut avoir différente valeur (Cf : https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP)

Requête et Réponse HTTP

Les évolutions du protocole

Après une présentation plutôt général du protocole nous allons maintenant nous intéresser à une parti plus technique afin de présenter les différentes évolutions des protocoles HTTPs

HTTP0.9

Première version de HTTP, apparue en 1990, elle n'est clairement plus supportée de nos jours. De plus cette version n'as pas était commercialisé (et donc pas de RFC y sont associé) et à l'époque le port utilisé était le 2784 Ses caractéristiques :

  • seule la méthode GET existe : il est donc impossible d'envoyer des données vers les serveurs, la communication est unidirectionnelle ;
  • il n'existe aucun type de fichier : seul le texte (text/plain) est géré ;
  • il n'existe aucun code de retour HTTP, si le document n'existe pas, une page blanche est servie ;
  • de manière générale la notion d'en-tête HTTP n'est pas définie.

Bref vous l'aurez compris, HTTP 0.9 est à peine plus haut que TCP : la connexion s'établit, le document, si trouvé, est rappatrié pour être affiché, et la connexion TCP est fermée, point final. C'est très très limité, d'ailleurs chose rigolote : interrogez Google avec HTTP 0.9 et voyez le résultat ;-)

HTTP1.0

HTTP1.1

SPDY

HTTP2.0

Conclusion

En guise de conclusion, nous pouvons dire que Le protocole HTTP (HyperText Transfer Protocol) est le protocole le plus utilisé sur Internet depuis 1990. La version 0.9 était uniquement destinée à transférer des données sur Internet (en particulier des pages Web écrites en HTML. La version 1.0 du protocole permet désormais de transférer des messages avec des en-têtes décrivant le contenu du message en utilisant un codage de type MIME. Les premiers véritables caches arrivent avec la version 1.1 du protocole. Google à put notamment faire parler son savoir faire en créant SPDY, qui a été utilisé pour crée la version 2.0 du protocole Applicatif.

La migration vers http 2.0 ne compte à ce jour seulement 1,4% d’utilisateur. Mais à quoi est du ce faible pourcentage ? Surement au fait de la robustesse de http 1.1, finalement pourquoi changer ? Cependant http 2 fut un changement important pour le protocole, maintenant que Google à montrer qu’il était possible de changer ce protocole qui, lors de sa création était fait pour ne pas changer... Pourquoi ne pas imaginer une version 3.0 très prochainement ?

Liens externes

Pour aller plus loin...