Verificamos completamente cada escrito de nuestra web con el objetivo de enseñarte siempre la información con la mayor veracidad y actualizada.
Solución:
Hay 2 puertos: un Puerto de origen (navegador) y un Puerto de destino (servidor). El navegador le pide al sistema operativo un puerto de origen disponible (digamos que recibe 33123) luego hace una conexión de socket al puerto de destino (generalmente 80/HTTP, 443/HTTPS).
Cuando el servidor web recibe la respuesta, envía una respuesta que tiene 80 como puerto de origen y 33123 como puerto de destino.
Entonces, si tiene 2 navegadores accediendo simultáneamente a stackoverflow.com, tendría algo como esto:
Firefox (localhost:33123) <-----------> stackoverflow.com (69.59.196.211:80)
Chrome (localhost:33124) <-----------> stackoverflow.com (69.59.196.211:80)
Las solicitudes HTTP salientes no ocurren en el puerto 80. Cuando una aplicación solicita un socket, generalmente recibe uno al azar. Este es el puerto de origen.
El puerto 80 es para servir contenido HTTP (por el servidor, no por el cliente). Este es el puerto de destino.
Cada navegador utiliza una fuente diferente para generar solicitudes. De esa manera, los paquetes regresan a la aplicación correcta.
Es la tupla de 5 (protocolo IP, dirección IP local, puerto local, dirección IP remota, puerto remoto) lo que identifica una conexión. Múltiples navegadores (o, de hecho, un solo navegador que carga varias páginas simultáneamente) usarán cada uno el puerto de destino 80, pero el puerto local (que es asignado por el sistema operativo) es distinto en cada caso. Por lo tanto no hay conflicto.
Puedes apoyar nuestro análisis fijando un comentario o valorándolo te damos las gracias.