Quelqu'un pourrait-il me donner un bref aperçu des différences entre HTTP 1.0 et HTTP 1.1? J'ai passé du temps avec les deux RFC, mais je n'ai pas réussi à faire la différence entre eux. Wikipedia dit ceci:
HTTP / 1.1 (1997-1999)
Version actuelle; les connexions persistantes sont activées par défaut et fonctionnent bien avec les proxys. Prend également en charge le pipelining des demandes, permettant d'envoyer plusieurs demandes en même temps, permettant au serveur de se préparer à la charge de travail et potentiellement de transférer plus rapidement les ressources demandées au client.
Mais cela ne signifie pas grand-chose pour moi. Je me rends compte que c'est un sujet quelque peu compliqué, donc je ne m'attends pas à une réponse complète, mais quelqu'un peut-il me donner un bref aperçu des différences à un niveau un peu inférieur?
J'entends par là que je recherche les informations dont j'ai besoin pour implémenter un serveur HTTP ou une application. Je suis surtout à la recherche d'un coup de pouce dans la bonne direction afin de pouvoir le découvrir par moi-même.
Réponses:
Prise en charge du proxy et champ hôte:
HTTP 1.1 a un en-tête Host requis par spec.
HTTP 1.0 ne nécessite pas officiellement d'en-tête Host, mais cela ne fait pas de mal d'en ajouter un, et de nombreuses applications (proxy) s'attendent à voir l'en-tête Host quelle que soit la version du protocole.
Exemple:
Cet en-tête est utile car il vous permet d'acheminer un message via des serveurs proxy et également parce que votre serveur Web peut distinguer différents sites sur le même serveur.
Cela signifie donc que si blahblahlbah.com et helohelohelo.com pointent tous deux vers la même IP. Votre serveur Web peut utiliser le champ Hôte pour distinguer le site que l'ordinateur client souhaite.
Connexions persistantes:
HTTP 1.1 vous permet également d'avoir des connexions persistantes, ce qui signifie que vous pouvez avoir plus d'une demande / réponse sur la même connexion HTTP.
Dans HTTP 1.0, vous deviez ouvrir une nouvelle connexion pour chaque paire demande / réponse. Et après chaque réponse, la connexion serait fermée. Cela a entraîné de gros problèmes d'efficacité en raison du démarrage lent de TCP .
Méthode OPTIONS:
HTTP / 1.1 présente la méthode OPTIONS. Un client HTTP peut utiliser cette méthode pour déterminer les capacités du serveur HTTP. Il est principalement utilisé pour le partage de ressources Cross Origin dans les applications Web.
Mise en cache:
HTTP 1.0 a pris en charge la mise en cache via l'en-tête: If-Modified-Since.
HTTP 1.1 étend beaucoup la prise en charge de la mise en cache en utilisant quelque chose appelé «balise d'entité». Si 2 ressources sont identiques, elles auront les mêmes balises d'entité.
HTTP 1.1 ajoute également les en-têtes conditionnels If-Unmodified-Since, If-Match, If-None-Match.
Il existe également d'autres ajouts relatifs à la mise en cache, comme l'en-tête Cache-Control.
100 Continuer le statut:
Il y a un nouveau code retour dans HTTP / 1.1 100 Continue. Il s'agit d'empêcher un client d'envoyer une demande volumineuse lorsque ce client n'est même pas sûr que le serveur peut traiter la demande ou est autorisé à traiter la demande. Dans ce cas, le client n'envoie que les en-têtes, et le serveur dira au client 100 Continuer, continuez avec le corps.
Beaucoup plus:
la source
HTTP 1.0 (1994)
HTTP 1.1 (1996-2015)
HTTP 1.1 est une amélioration de HTTP 1.0. Voici une liste des quatre améliorations majeures:
Utilisation efficace des adresses IP, en permettant à plusieurs domaines d'être servis à partir d'une seule adresse IP.
Réponse plus rapide, en permettant à un navigateur Web d'envoyer plusieurs demandes via une seule connexion persistante.
la source
Pour les applications triviales (par exemple, récupérer sporadiquement une valeur de température à partir d'un thermomètre compatible Web), HTTP 1.0 convient à la fois pour un client et un serveur. Vous pouvez écrire un client ou un serveur HTTP 1.0 basé sur des sockets bare-bones dans environ 20 lignes de code.
Pour des scénarios plus compliqués, HTTP 1.1 est la voie à suivre. Attendez-vous à une augmentation de 3 à 5 fois de la taille du code pour gérer les subtilités du protocole HTTP 1.1 plus complexe. La complexité vient principalement du fait que dans HTTP 1.1, vous devrez créer, analyser et répondre à divers en-têtes. Vous pouvez protéger votre application de cette complexité en demandant à un client d'utiliser une bibliothèque HTTP ou à un serveur d'utiliser un serveur d'applications Web.
la source
Un problème clé de compatibilité est la prise en charge des connexions persistantes . J'ai récemment travaillé sur un serveur qui "supportait" HTTP / 1.1, mais je n'ai pas réussi à fermer la connexion lorsqu'un client a envoyé une requête HTTP / 1.0. Lorsque vous écrivez un serveur qui prend en charge HTTP / 1.1, assurez-vous qu'il fonctionne également bien avec les clients HTTP / 1.0 uniquement.
la source
L'une des premières différences dont je me souviens du haut de ma tête sont plusieurs domaines exécutés sur le même serveur, la récupération partielle des ressources, cela vous permet de récupérer et d'accélérer le téléchargement d'une ressource (c'est ce que font presque tous les accélérateurs de téléchargement).
Si vous souhaitez développer une application comme un site Web ou similaire, vous ne devez pas vous inquiéter trop sur les différences , mais vous devez connaître la différence entre
GET
et lesPOST
verbes au moins.Maintenant, si vous souhaitez développer un navigateur, alors oui, vous devrez connaître le protocole complet ainsi que si vous essayez de développer un serveur HTTP.
Si vous souhaitez uniquement connaître le protocole HTTP, je vous recommande de commencer par HTTP / 1.1 au lieu de 1.0.
la source
HTTP 1.1 est la dernière version de Hypertext Transfer Protocol, le protocole d'application du World Wide Web qui s'exécute en plus de la suite de protocoles TCP / IP d'Internet. comparer à HTTP 1.0, HTTP 1.1 fournit une livraison plus rapide des pages Web que le HTTP d'origine et réduit le trafic Web.
Trafic Web Exemple: par exemple, si vous accédez à un serveur. Dans le même temps, de nombreux utilisateurs accèdent au serveur pour les données, puis il y a une chance de bloquer le serveur. Il s'agit du trafic Web.
la source
HTTP 1.1 est livré avec l'en-tête d'hôte dans sa spécification tandis que le HTTP 1.0 n'a pas officiellement d'en-tête d'hôte, mais il ne refuse pas d'en ajouter un.
L'en-tête de l'hôte est utile car il permet au client de router un message à travers le serveur proxy, et la principale différence entre les versions 1.0 et 1.1 HTTP est:
la source
Comparé à 1.0, 1.1 réduit le trafic Web
la source