Há muitas camadas nisso. E, importante, muitos deles são intercambiáveis.
Por exemplo, você pode ter uma rede de cabo coaxial, ethernet ou Wi-Fi no nível físico. O HTTP funciona em cima de todos eles, mas cada um deles tem um tratamento ligeiramente diferente da carga útil que está sendo enviada.
O HTTP funciona em cima de outro protocolo, chamado TCP, que, por sua vez, roda mais ou menos em cima de outro protocolo, chamado IP (hoje em dia principalmente em duas variantes - IPv4 e IPv6).
Portanto, o servidor HTTP registra um endereço IP (como 184.38.45.1
, ou na maioria das vezes "qualquer"), juntamente com uma porta TCP ( 80
sendo o padrão para HTTP, mas em geral qualquer coisa de 1
até 65535
), no sistema operacional. Agora, o servidor HTTP diz ao sistema operacional para fazer o ping quando os dados (ou outra mensagem) chegarem. O sistema operacional sabe quando isso acontece, porque o driver da placa de interface de rede diz isso. E o driver da NIC é informado pela própria NIC, que na verdade possui seu próprio software para interpretar os sinais elétricos no cabo de rede (ou os sinais sem fio no ar, etc., você entendeu).
Nota lateral :
Se você quiser saber mais sobre como a NIC pode iniciar a comunicação com o driver / sistema operacional, consulte algumas informações básicas sobre interrupções de hardware - basicamente, o que a CPU está fazendo no momento está parado e o fluxo do programa muda para uma interrupção. rotina do manipulador - um pedaço de código extremamente simples que cuida da notificação do sistema e, em seguida, retorna imediatamente o controle à coisa original que a CPU estava fazendo. Na verdade, ele pode responder muitas perguntas sobre o funcionamento interno do sistema operacional e do próprio computador - como um sistema operacional pode "roubar" a CPU da execução de aplicativos e embaralhar os recursos da CPU entre diferentes aplicativos em execução ao mesmo tempo, mesmo se eles não cooperarem.
De volta aos negócios:
Na analogia manual do telefone, imagine que o telefone realmente não toque. Para saber se você está tentando fazer uma ligação, é necessário olhar a tela periodicamente e verificar. Para facilitar o gerenciamento para o servidor HTTP (como já existem várias camadas que fazem essa verificação periódica), você pode realmente bloquear a tentativa de verificação.
Então, em vez de checar, vendo que não há nada lá e checar novamente, você basicamente fica olhando a tela o tempo todo. No entanto, você basicamente tem um sistema totalmente separado para lidar com isso (no seu caso, o centro auditivo, que verifica as vibrações do ar em busca de informações úteis, o anel), para que na verdade não exija sua atenção (tempo da CPU).
Isso é aprimorado ainda mais pelas técnicas que permitem monitorar muitas conexões ao mesmo tempo (IOCP). Isso se aproxima cada vez mais do sistema de toque do telefone - você tem uma sala com dez mil telefones, mas só se importa com os que estão tocando no momento, os outros não estão prestando atenção.