A resposta de Lee B está certa, mas aqui estão algumas RFCs relevantes, caso você esteja interessado.
0.0.0.0:
Do RFC1122 , Seção 3.1.2.3:
Agora, resumimos os casos especiais importantes para os endereços IP das classes A, B e C, usando a seguinte notação para um endereço IP:
{ <Network-number>, <Host-number> }
or
{ <Network-number>, <Subnet-number>, <Host-number> }
...
(a) { 0, 0 }
This host on this network. MUST NOT be sent, except as
a source address as part of an initialization procedure
by which the host learns its own IP address.
Apenas isso, "este host nesta rede" ... como a resposta de Lee B afirma que isso se traduz em todos os endereços IP disponíveis no seu host. A hospedagem de um serviço no 0.0.0.0 hospedará esse serviço automaticamente em todas as interfaces endereçáveis.
127.0.0.1:
De RFC5735 :
127.0.0.0/8 - Este bloco é atribuído para uso como o endereço de loopback do host da Internet. Um datagrama enviado por um protocolo de nível superior para um endereço em qualquer lugar dentro desse bloco volta para dentro do host. Isso é normalmente implementado usando apenas 127.0.0.1/32 para loopback. Conforme descrito em [RFC1122], Seção 3.2.1.3, os endereços dentro de todo o bloco 127.0.0.0/8 não aparecem legitimamente em nenhuma rede em nenhum lugar.
A diferença entre 0.0.0.0 e o endereço de loopback 127.0.0.1 é que o endereço de loopback foi projetado para permitir uma interface IP totalmente funcional no próprio host, independentemente da aparência do restante da configuração de rede, se houver. Qualquer tráfego enviado ao dispositivo de loopback é recebido imediatamente nele. Não é tanto que a rede de loopback "se refira" ao seu próprio host ... é mais como se você tivesse um mini segmento de rede em seu host que dispositivos, processos e soquetes possam abrir e conectar.