¿Por qué estamos usando los números de puerto junto con alguna URL en la web?

Me encanta cuando la gente nota cosas más allá de lo que se espera de ellos. Eres muy observador al notar los números de puerto en las URL web.

Hay dos tipos de servidores en Internet.

  1. Servidores web (solo pueden servir páginas HTML, generalmente a través del puerto 80)
  2. Servidores de aplicaciones (son un tipo especial de servidor web que puede ejecutar múltiples aplicaciones en múltiples puertos)

Sin embargo, solo hay un tipo de servidor que puede servir páginas a su navegador web. Es un servidor web. Por eso, la mayoría de los servidores de aplicaciones vienen con un servidor web incorporado.

Por lo general, las buenas aplicaciones web se implementan de tal manera que hay un equilibrador de carga que también actúa como un proxy frontal. El proxy luego lo conecta a un servidor de aplicaciones que es lo suficientemente rápido como para atender sus solicitudes.

Nunca debería tener que ver diferentes direcciones IP y dominios internos y puertos al acceder a una aplicación bien diseñada en general. Así es como se diseñan las buenas aplicaciones.

Sin embargo, si está viendo números de puerto en ciertos sitios web, simplemente significa que está llegando a un servidor web que está directamente frente a usted y está expuesto a la web.

Pero, ¿qué significa el número de puerto?

El número de puerto significa un oyente que está configurado en la máquina host del servidor web. El oyente también debe tener una aplicación configurada con él, que sirva páginas HTML.

Una vez que ingrese esta dirección IP / URL y puerto a través de un navegador, el oyente podría tener un proxy adicional que reenvía las solicitudes a la aplicación real y así es como puede ejecutar múltiples aplicaciones en diferentes puertos en el mismo servidor / URL. Increíble, ¿no es así?

La mayoría de los protocolos de capa de aplicación utilizan el Protocolo de Control de Transmisión (TCP) para transmitir datos de manera confiable desde una aplicación en una computadora a otra aplicación en otra computadora. El concepto de número de puerto viene del TCP que permite que una computadora con una dirección IP permita el acceso a la red a múltiples aplicaciones utilizando el número de puerto para identificar qué aplicación recibe los datos que se reciben. Sin el número de puerto, solo una aplicación podría haber podido utilizar la red, ya que habría sido imposible saber qué datos pertenecen a qué aplicación.

Entonces, técnicamente, debe conocer la dirección IP y el número de puerto para acceder a una aplicación de servidor que se ejecuta en la máquina. Ahora, lo interesante es que puede ejecutar una aplicación en cualquier número de puerto disponible y ejecutar cualquier protocolo de capa de aplicación sobre él. Para evitar confusiones, a los protocolos de aplicación se les asignan números de puerto predeterminados para que los clientes puedan conectarse a los servicios sin confundirse con el número de puerto. Por lo tanto, el servicio HTTP se ejecuta de forma predeterminada en el puerto 80 mientras que el servicio HTTPS se ejecuta en más de 443, FTP se ejecuta en el puerto 21, SMTP se ejecuta en el puerto 25, y así sucesivamente. Puede consultar el sitio web de IANA para obtener la lista de números de puerto estándar [1].

Ahora, nadie le impide dejar de seguir el estándar y puede ejecutar su servidor web HTTP en cualquier puerto como el puerto 100 o puede ser 65000. Su servidor son sus reglas. En tal caso, la URL del servidor incluirá el número de puerto como si fuera su puerto 100, entonces la URL será http://example.com:100 . Si no incluye el número de puerto, el navegador usará el número de puerto predeterminado para el protocolo HTTP, que es el puerto 80.

Ahora, ¿por qué las personas usan diferentes puertos para los servicios web HTTP? Es simplemente porque solo puede ejecutar una aplicación en un puerto determinado. Puede suceder que ya tenga un servidor web ejecutándose en el puerto 80 y desee ejecutar otro servidor web o un servidor de aplicaciones en la misma máquina, de modo que utilice un puerto diferente.

Otra razón para ejecutar en un puerto diferente es porque el propietario quiere ejecutarlo en un puerto diferente sin ningún motivo.

Notas al pie

[1] Registro de número de puerto de protocolo de transporte y nombre de servicio

Vamos a entender para qué sirve esta URL y cómo nos consigue el contenido que vemos en nuestro navegador.

En términos simples, la URL es una forma de dirección que identifica una computadora únicamente en la red. Ahora esta computadora tiene un servidor web ejecutándose if (para servir páginas web) y este servidor web responde a nuestra solicitud de obtener datos para una página web específica. Ahora la URL nos hizo llegar a la computadora en la que se ejecuta el httpserver, pero esta computadora también puede estar ejecutando otros programas que no sean el httpserver. Entonces, ¿cómo sabemos que necesitamos conectarnos a un programa específico que se ejecuta en la computadora? Aquí el puerto viene a nuestro rescate, una computadora tiene muchos puertos abiertos y las aplicaciones están expuestas en estos puertos para que otras aplicaciones se conecten a ellos. Como más comúnmente tenemos HTML servido en el puerto 80, ftp en el puerto 21, supongo.

Entonces, cada vez que use la URL con un puerto no, significa decir que se conecta a la máquina representada por la URL en el puerto mencionado, el puerto identifica uno de los servicios que podrían estar expuestos en esa máquina.