Lorsque vous tapez www.google.com dans votre navigateur Web, il ouvre une connexion sur le port par défaut 80 au serveur Google (via une recherche DNS pour voir quelle adresse IP www.google.com est) et demande la page Web. Le serveur Google répond par une page Web que votre navigateur dessine à l'écran (généralement en effectuant d'autres appels à des images, CSS et JavaScript).
Lorsque vous allez sur localhost: 8080, c'est exactement la même chose. Le nom du serveur Localhost résout toujours la machine sur laquelle vous exécutez et utilise la fausse adresse IP de 127.0.0.1 (votre ordinateur aura deux adresses IP - cette fausse que chaque ordinateur possède et la vraie). Vous devez donc disposer d'une instance Tomcat exécutée localement à l'écoute des connexions sur le port 8080.
Pourquoi le port 8080 plutôt que le port http par défaut 80? Eh bien, c'est dans le cas où vous avez déjà un serveur Web en place.
En règle générale, vous disposez de serveurs Web et de serveurs d'applications.
Les serveurs Web (comme Apache httpd) fournissent des pages statiques. En fait, c'est comme un serveur FTP unidirectionnel sophistiqué. Vous ouvrez une connexion TCP et demandez un fichier à l'aide des commandes HTTP (généralement GET). Le serveur Web renvoie un fichier HTML et votre navigateur le télécharge et l'analyse, voit qu'il a besoin d'autres images et les demande. Un serveur Web est très rapide mais soulève essentiellement les fichiers du disque local et les renvoie.
Un serveur d'applications (comme Tomcat ou JBoss) est similaire, sauf qu'il exécute généralement du code pour «créer» la page que vous demandez, plutôt que de la soulever directement du disque. Ce qu'il fait pour créer cette page dépend de votre application. Il peut se connecter à une base de données, exécuter un programme, servir une page au hasard ... Etc. Lorsque vous vous connectez à vos services bancaires en ligne par exemple, le serveur d'application établit une session pour vous, renvoie cet identifiant de session dans un cookie que votre le navigateur renvoie à chaque fois que vous faites une demande jusqu'à ce que vous vous déconnectiez. Donc, si vous demandez la page "mes soldes", la banque recherche qui vous êtes en fonction de votre identifiant de session, puis va dans sa base de données pour obtenir votre nom et votre solde bancaire, puis crée une page disant "Salut John Smith, votre solde est de 100 €. " Les serveurs d'applications sont généralement plus lents, mais plus polyvalents que les serveurs Web.
De nombreux endroits ont un WebServer fonctionnant dans le port par défaut de 80, puis AppServer fonctionnant sur un port secondaire (comme 8080). Ainsi, les pages statiques sont servies rapidement et lorsque les utilisateurs cliquent sur un lien qui les mène à une page dynamique, le lien va au 8080 (auquel le serveur d'applications répond) ou le serveur Web est configuré pour transmettre certaines demandes au serveur d'applications (dans auquel cas il ressemble toujours au port par défaut 80 et semble donc un peu plus agréable à l'utilisateur).
Bien sûr, c'est un aperçu de très haut niveau et rien n'est aussi noir et blanc. La plupart des serveurs Web peuvent créer du contenu dynamique en exécutant des scripts (généralement CGI via des scripts she'll utilisant perl ou PHP) et la plupart des serveurs d'applications peuvent également servir des fichiers simples comme un serveur Web. En fait, il est possible d'exécuter simplement un serveur d'applications et de changer le numéro de port tomcat de 8080 à 80.
Enfin, de nombreuses applications s'éloignent de la diffusion de pages HTML complètes pour chaque demande au serveur d'application (ce qui est considéré comme lent et inefficace) et répondent à la place avec uniquement les extraits de données utilisant AJAX pour envoyer JSON ou XML. Retour à l'original www.google.com que vous avez utilisé pour taper votre requête de recherche, appuyez sur Rechercher et obtenez une page de vos résultats. À la place, au fur et à mesure que vous tapez, votre navigateur envoie continuellement des demandes AJAX à Google qui répond avec des résultats de recherche à jour en fonction de ce que vous avez tapé jusqu'à présent, puis votre navigateur met à jour la page. Cela signifie qu'il n'est pas nécessaire d'attendre que l'utilisateur soumette la page de manière plus rapide et plus dynamique pour l'utilisateur (comme le serait une application de bureau à l'ancienne).