web-dev-qa-db-fra.com

Pourquoi devons-nous spécifier un numéro de port lors de l'utilisation du protocole HTTP?

Pourquoi devons-nous spécifier un numéro de port avec une adresse IP même si nous utilisons le protocole HTTP? Par exemple - http://xyz:8080... - qu'est-ce que cela signifie même? Nous savons déjà que lors de l'utilisation de HTTP, la demande sera servie au port 80, alors pourquoi spécifions-nous explicitement un port?

S'il vous plaît supporter avec moi cette question stupide.

6
unmesh_swar

Le port par défaut pour HTTP est 80 et HTTPS est 443 mais les numéros de port vont de 0 à 65535. La plupart des serveurs Web écoutent sur le port par défaut, il est donc plus simple de se référer à l'URL sans le port. Par exemple, http://www.cnn.com/ fait référence à la même ressource que http://www.cnn.com:80/ puisque le port 80 est le port par défaut. Si un service HTTP/HTTPS est différent du port par défaut, le port doit être spécifié dans l'URL.

L'URL est définie par RFC 1738 avec cette syntaxe simplifiée qui inclut le port:

<scheme>://<Host>:<port>/<url-path>

Ainsi, par exemple, l'URL http://xyz:8080/... fait référence à un nom d'ordinateur hôte ou à une adresse IP écoutant le port 8080 avec HTTP comme protocole. Le serveur HTTP (ou Web) à cette adresse résout ensuite le chemin-url au service ou au fichier particulier.

Le port est facultatif lorsqu'il s'agit du port par défaut pour le schéma ou le protocole donné (par exemple, HTTP = 80).

Une machine donnée peut héberger plusieurs produits différents avec des services HTTP à partir de différents ports. Par exemple, le serveur Web Apache écoute le port 80 sur un serveur donné tandis qu'Apache Tomcat écoute le port 8080 sur la même machine. Divers produits de base de données et de messagerie disposent généralement de services HTTP sur différents ports. Le port fait partie de l'adresse à partir de laquelle un client peut référencer un service spécifique .

8
JasonM1

Un port est comme un "canal" en quelque sorte ... Si vous devez accéder à différentes fonctions du même site Web, vous utilisez différents ports. HTTP est le port 80, HTTPS est 443, SSH est 22, etc.

2
Simon