Des améliorations dans la négociation TLS de la couche application ont été rétroportées vers Java 8, permettant à ces clients de tirer parti des capacités de mise en réseau sur HTTP/2. Auparavant, ce travail était disponible dans Java 9 et supérieur.
Le changement est une amélioration essentielle pour les clients plus anciens, comme le récent "rapport sur l'état de Java" de New Relic indique que 85% des systèmes fonctionnent sur Java 8. Initialement publié sous la forme de la JEP 244 en Java 9, ce backport a permis aux clients qui se mettent à jour au sein de la famille Java 8 de pouvoir communiquer avec des systèmes non Java plus récents qui demandent des requêtes HTTP/2. Sans la mise à jour, ces clients seraient forcés d'utiliser des structures TLS plus anciennes ou l'application côté serveur nécessiterait un SSL terminator en amont pour prendre en charge les nouveaux protocoles d'applications. KeyCDN a publié une représentation graphique du fonctionnement de la négociation ALPN.
Chaque technologie est disponible dans de nombreux systèmes de production depuis plusieurs années.
- Java 8 a été publié pour la première fois en mars 2014
- HTTP/2 a été standardisé en mai 2015
- Java 9, contenant cette fonctionnalité, a été publié en septembre 2017
HTTP/2 est construit au sommet d'une initiative pilotée par Google appelée SPDY. Bien que le travail SPDY sous-jacent ait été disponible dans le délai pour Java 8, il n'y avait pas de norme industrielle officielle disponible jusqu'au moment de de la sortie de Java 9. Avant HTTP/2, SPDY était une initiative pilotée par Google susceptible d'être modifiée ou annulée sans préavis. En tant que chef de file majeur du protocole HTTP/2, Google n'a supprimé SPDY qu'après une coordination bien gérée avec les organisations technologiques homologues qui ont formé la norme. La fonctionnalité a ensuite été incluse dans la version majeure de Java suivante.
L'Application Layer Protocol Negotiation permet une meilleure compression entre les applications client et serveur, qui peuvent échanger et décoder sur le protocole approprié au cours de la phase client hello handshake.
Les développeurs qui ne connaissent pas le fonctionnement interne de TLS peuvent exploiter différents outils en ligne tels que Hardernize pour fournir des indicateurs de sécurité red-amber-green. Plutôt que de se concentrer sur les pratiques individuelles de TLS et de configuration d'algorithmes, ces outils évaluent les réponses d'un serveur et les informations de négociation TLS pour déterminer d'autres problèmes tels que la disponibilité de l'algorithme, la force de la clé du certificat, les en-têtes HTTP ou d'autres sources d'intérêt pour les administrateurs de serveur et les professionnels de la sécurité.
Les équipes d'exploitation qui cherchent à utiliser les améliorations de TLS peuvent obtenir le backport via des fournisseurs de Java 8 publics tels que AdoptOpenJDK. Les équipes de développement qui cherchent à tirer parti de cette fonctionnalité devraient envisager de suivre un guide Microsoft intitulé "De Java 8 à 11."