Developpez.com

Le Club des Développeurs et IT Pro

Microsoft présente le premier prototype du serveur HTTP 2.0

Basé sur Katana Server

Le 2013-07-31 05:48:34, par Stéphane le calme, Chroniqueur Actualités
Mise à jour du 31/07/13

Microsoft a rendu public un prototype du serveur HTTP 2.0 basé sur la version 4 de Katana Server, la pile web open source basée sur C#. Ce prototype devrait supporter la compression d'en-tête, le multiplexage de flux ainsi que ALPN (Application Layer Protocol Negotiation), le mécanisme de mise à jour de HTTP et les connexions directes HTTP 2.0.

Ce prototype est le premier d'une série d'expérimentations de l'implémentation de HTTP 2.0. « Nous travaillons sur les propositions dans le code (…) nous sommes susceptibles d'avoir plusieurs prototypes qui affineront progressivement l'approche que nous avons adoptée » explique Mark Nottingham, président de l'IETF HTTPBIS.

L'idée est d'améliorer les performances en supportant le multiplexage et en réduisant le temps de latence de la couche application.

Pour permettre à la communauté de tester cette implémentation de HTTP 2.0, deux adresses ont été identifiées. Il s'agit de http://http2katanatest.cloudapp.net:8080/ et https://http2katanatest.cloudapp.net:8443/. Ces liens tests sont donnés uniquement pour répondre aux navigateurs HTTP 2.0 et ne sont donc pas censés être accessibles après un évènement « clic ».

Télécharger le code sur GitHub.

Source : Microsoft Open Technologies

Et vous ?

Avez-vous déjà essayé Katana Server ? Qu'en pensez-vous ?
  Discussion forum
24 commentaires
  • Firwen
    Membre expérimenté
    Envoyé par Gecko
    Bah voilà, la seule contrainte qui vise à protéger un minimum les flux est flinguée

    Donc au final un hypothétique gain en perf mais question sécurité nada, vraiment nawak...
    Ca serait aussi bien d’arrêter de dire n'importe quoi.
    Si les protocoles en non-chiffrés ont été inventé c'est pas juste pour donner plus facilement tes "pokes" facebook à la NSA.

    Le chiffrement a un cout, spécialement serveur side, et spécialement à grande échelle.

    Définir HTTP 2.0 avec TLS on par défaut, aurait juste signifier un BAN irrévocable de celui-ci pour toutes les opérations de HPC, Fast-IO, Grid, Cloud storage, etc... dans toutes les situations où l'overhead causé par TLS apporte bien plus de problèmes que d'avantages.

    Et je ne parle même pas du caching ou des Proxys.

    Je suis un fervent défenseur de la protection de la vie privé, mais ce n'est pas une raison pour sortir des anneries pareilles.
  • gangsoleil
    Modérateur
    Pour les normes, tu as deux mondes qui s'opposent.

    D'un cote, le monde à la télécom, dans lequel on definit d'abord les normes, et une fois qu'elles sont viables et definies et plus encore, on commence a les implementer.
    D'un autre cote, le monde "web", dont le W3C est un bel exemple, dans lequel on definit les normes a partir de ce qu'un ou plusieurs constructeurs ont commence a implementer et a vendre, en essayant de menager la chevre et le chou, et aussi les limaces, le vendeur d'engrais et la pluie et le soleil et ....

    Alors oui, les normes telecom, c'est chiant, c'est lourd, c'est tout ce qu'on veut, mais ca fonctionne du feu de dieu. Les normes web, ca donne l'USB 1.0, avec l'USB 1.1 sorti en catastrophe, et des portables avec USB 3.0 vendus avant meme que la norme ne soit finie.

    Ce qui est navrant, c'est que jusqu'a present, l'IETF etait loin de ce modele web...
  • thelvin
    Modérateur
    Envoyé par SylvainPV
    Tout foutre à la poubelle et repartir de la page blanche ? C'est peut-être nécessaire, mais ça témoigne d'un problème de communication et de méthode.
    Ben oui, ils sont partis d'une spécification tierce, élaborée avec bon esprit et offerte avec bienveillance, mais faite en dehors des circuits habituels et de leur vérification rigoureuse, expérimentée et universelle.

    S'ils décident de ne pas le faire la prochaine fois, il n'y a aucune raison que ça suive le même chemin.
  • SylvainPV
    Rédacteur/Modérateur
    Tout foutre à la poubelle et repartir de la page blanche ? C'est peut-être nécessaire, mais ça témoigne d'un problème de communication et de méthode. Si ces problèmes ne sont pas résolus, leur HTTP 3.0 suivra le même chemin. Les éditeurs préparent chacun leurs petits plats chez eux puis se réunissent autour d'une table et veulent faire tout avaler aux autres. Pas étonnant que ça finisse en indigestion, surtout avec un plat aussi lourd à digérer que SPDY.

    Je pense que ça aiderait si toutes les spécifications du Web suivaient un modèle incrémental et non versionné. On est en train d'arrêter de versionner les specs HTML/CSS/JS : HTML5 est devenu HTML, les navigateurs implémentent déjà des bouts d'ES6 et d'ES7 sans qu'ES5 soit complètement supporté... On pourrait faire de même avec HTTP, de la détection de fonctionnalité plutôt que des normes versionnées. Cela permettrait une progression plus rapide et moins abrupte, tout en donnant davantage de pouvoir aux éditeurs pour choisir et faire évoluer les fonctionnalités qui leur sont chères. Pour reprendre ma métaphore, on sert les hors d'oeuvre, on voit ce qui part le plus vite et ce qui reste dans les assiettes, et on en déduit le menu à servir la prochaine fois.
  • gangsoleil
    Modérateur
    Envoyé par SylvainPV
    Le W3C a un mode de fonctionnement très strict, certains de leurs documents de spécifications sont encore au stade de Candidate Recommendation alors que cela fait des années qu'on les utilise sur des sites grands publics.
    Si c'est utilisé alors que la norme n'est pas finie, c'est qu'il y a un problème : une fois que quelque chose commence à être utilisé, ça n'est plus normalisable, et donc tu peux mettre ta norme à la poubelle, car tu ne pourras plus rien changer face à un géant du logiciel qui te dira "nous on fait comme ça, et si t'es pas content, c'est pareil".

    Envoyé par SylvainPV
    La spécification HTML5 n'est toujours pas finalisée, et pourtant on en parlait déjà fin 2007 ! Qu'est-ce que ça aurait été si personne n'avait fait de site en HTML5 tant que le W3C n'avait pas mis son tampon "Recommendation" ? Quand je vois comment a évolué le Web ces 7 dernières années, je suis plutôt content que le Web suive cette méthodologie pour l'évolution des normes. Quitte à ce qu'il y ait quelques incidents de parcours, au moins on avance et à grande vitesse.
    Peut-être que la normalisation n'est pas adaptée au web dans ce cas. Mais je reviens a ce que je disais au dessus : normer quelque chose d'utilisé, c'est absolument inutile.
  • SylvainPV
    Rédacteur/Modérateur
    Ce n'est pas un très beau tableau du W3C que tu donnes là gangsoleil. Le W3C a un mode de fonctionnement très strict, certains de leurs documents de spécifications sont encore au stade de Candidate Recommendation alors que cela fait des années qu'on les utilise sur des sites grands publics. Ce sont les éditeurs qui veulent accélérer le mouvement, c'est d'ailleurs pour ça que la WHATWG a été créé et c'est pour ça qu'ils se prennent le chou régulièrement. Je dirais que le W3C est encore un des rares acteurs du web qui ait gardé un pied dans cette méthodologie télécom. Et ça ne leur donne pas forcément une bonne image auprès de la communauté de développeurs web qui ont tendance à foncer tête baissée sur les nouveautés dès lors qu'elles sont implémentées sur les trois navigateurs majoritaires. Je me rappelle encore quand ils ont viré le WebSQL, moi qui avait un service en prod qui fonctionnait avec...

    Alors certes, c'est un gage de maturité et de fiabilité, mais c'est loin d'être l'idéal pour le business et l'innovation. La spécification HTML5 n'est toujours pas finalisée, et pourtant on en parlait déjà fin 2007 ! Qu'est-ce que ça aurait été si personne n'avait fait de site en HTML5 tant que le W3C n'avait pas mis son tampon "Recommendation" ? Quand je vois comment a évolué le Web ces 7 dernières années, je suis plutôt content que le Web suive cette méthodologie pour l'évolution des normes. Quitte à ce qu'il y ait quelques incidents de parcours, au moins on avance et à grande vitesse.
  • singman
    Membre averti
    La remarque du developpeur FreeBSD est juste stupide : passer directement à HTTP 3.0 parce qu'ils n'arrivent pas a se mettre d'accord sur SPDY sur HTTP 2.0 ? Et ça sera quoi la prochaine fois ? Il ne trouve pas le café a son gout et il voudra passer au HTTP 4.0 ?
    SPDY existe déjà, a prouvé qu'il était utile et performant. L'intégrer dans HTTP 2.0 est difficile c'est certain, mais est ce qu'il faut pour autant abandonner et passer à autre chose ? Je ne pense pas.
  • pcdwarf
    Membre éprouvé
    Bon alors l'idée est intéressante, mais en pratique, selon mon expérience, SPDY c'est quand même un peu du vent.

    Déjà tout serveur web qui se respecte a une fonction nommée keepalive qui permet de réutiliser la même socket pour plusieurs requêtes HTTP consécutives. (sans multiplexage)
    Mais même avec un keepalive à off, les temps cumulés d'établissement des socket TCP sur une page, c'est quoi ? 50ms ?

    A peu près rien devant le temps de calcul des serveurs et de transfert des data....
    Remettre en cause un truc qui marche quand même divinement bien et surtout aisément compréhensible par n'importe qui pour au mieux gagner quelque chose comme 2% de perf, moi, ça me laisse très dubitatif...

    De mon point de vue, ce qui est pénible, c'est surtout que les browsers ne font jamais que 2 connexions simultanées par serveur...
    ça c'est vraiment un point limitant...
    A une époque ça a eu un sens et qualque part ça peut toujours en avoir pour éviter de tabasser les serveurs des petits sites. Mais en ce qui me concerne, j'aimerai bien pouvoir dire aux browsers de mes clients "allez y les gars, faites donc 30 sockets simultanées, on gère..."
  • Magnifique résultat de notre serveur x1.82 !!!!
    http://http2.httptwo.com/analysis/st...84fc9e12dc2703
  • Gecko
    Membre éprouvé
    Envoyé par Firwen
    Ca serait aussi bien d’arrêter de dire n'importe quoi.
    Si les protocoles en non-chiffrés ont été inventé c'est pas juste pour donner plus facilement tes "pokes" facebook à la NSA.

    Le chiffrement a un cout, spécialement serveur side, et spécialement à grande échelle.

    Définir HTTP 2.0 avec TLS on par défaut, aurait juste signifier un BAN irrévocable de celui-ci pour toutes les opérations de HPC, Fast-IO, Grid, Cloud storage, etc... dans toutes les situations où l'overhead causé par TLS apporte bien plus de problèmes que d'avantages.

    Et je ne parle même pas du caching ou des Proxys.

    Je suis un fervent défenseur de la protection de la vie privé, mais ce n'est pas une raison pour sortir des anneries pareilles.
    Tu m'a vu parler de la NSA? Je parle de la sécurité générale des usagers lambda qui ne savent pas faire la différence entre les flux classiques et chiffré.

    Ensuite si je critique c'est parce qu'il serai temps que les choses tournent en faveur de la protection de ces utilisateurs au lieu d'uniquement s'axer sur le porte-feuille des sociétés.

    Et si le TLS avait été actif par défaut HTTP 2.0 aurait certes été plus long à émerger mais certainement pas banni, les sociétés auraient cherchées à perfectionner le rendement de leur produits avant de le proposer et ça ça aurait pu faire naître de nouvelles techno plus performantes.

    Pour moi une contrainte comme celle-ci n'a pas que des mauvais côté.