Cuando vaya a algún lugar utilizando un navegador y especificando un puerto, está intentando hacer una conexión (TCP) a ese puerto.
Cuando ejecuta un servicio (como un servidor web, por ejemplo), se ejecuta en un puerto específico. Si intenta conectarse a una máquina y no se está ejecutando ningún programa asociado con ese puerto (el término correcto está vinculado al puerto), o está protegido por firewall, se agota el tiempo de espera.
Cuando fuiste a Google en el puerto 8000, no había ningún servicio ejecutándose en él, por lo que se agotó el tiempo de espera. (Realmente intenta conectarse algunas veces en caso de que haya un error las primeras veces para hacer las cosas más robustas)
Cuando fuiste a Google en el puerto 443, estableciste una conexión exitosa, porque el 443 se usa típicamente para HTTPS, es decir, conexiones seguras. Debido a que no inició una conexión segura según el protocolo HTTPS, Chrome y Firefox se comportaron de esa manera.
Respuesta avanzada
Al realizar una conexión en TCP, hay un "protocolo de enlace de 3 vías": el cliente envía un paquete "SYN" al servidor. El servidor recibe esto y, suponiendo que hay un programa en ejecución, envía un acuse de recibo "SYN-ACK", luego el cliente envía un paquete "ACK" al servidor, momento en el cual los sistemas han establecido una conexión.
En el caso de conectarse al puerto 8000, el cliente no obtiene una respuesta al paquete SYN, por lo que lo intenta varias veces y luego se da por vencido y agota el tiempo de espera.
En el caso de conectarse al puerto 443, se establece una conexión a nivel TCP. En este momento, el servidor espera negociar una conexión SSL por seguridad (porque está configurado para hacerlo en el puerto 443). No sabes cómo hablar SSL, por lo que falló.
Puntos extra
Si tiene instalado TELNET, la mayoría de los sistemas lo hacen, puede pretender ser un navegador (o un cliente de correo o lo que sea si conoce el protocolo), haciendo lo siguiente.
1. type "telnet www.google.com 80"
(wait for a few seconds)
2. Type GET / HTTP/1.1<enter>
host www.google.com<enter><enter>
El paso 1 le dice a Telnet que cree una conexión TCP al servidor de Google en el puerto 80, y el paso 2 dice qué obtener (GET / significa obtener el archivo raíz), y la línea "host" dice a qué servidor desea conectarse: necesita esto porque muchos sitios web comparten un solo servidor: la segunda línea le dice al servidor qué sitio. Presiona Intro dos veces para decir que has terminado de enviar tu encabezado y luego obtienes una respuesta HTTP. (Si fuera un navegador web, enviaría mucha más información, incluidos los detalles del navegador, las cookies, etc., pero a modo de explicación no lo hicimos).