Hi!
Yes. Auf IP-Ebene gibt es für den 'localhost' den Adressbereich
127.0.0.0 (Netzadresse)
bis
127.255.255.255 (Broadcastadresse)
Nein, localhost ist üblicherweise nur dem Loopback-Interface mit der Adresse 127.0.0.1 zugewiesen. Der Bereich 127.0.0.0/8 (oder 172.0.0.0/255.0.0.0) wird lediglich auf 127.0.0.1 (das Loopback-Interface) geroutet (siehe: netstat -rn).
D.h., die 127.0.1.1 zeigt ebenfalls auf 'localhost', das kannst Du mit ping testen; das hat jeder IP-Stack so implementiert.
Du solltest die Begrifflichkeiten besser unterscheidbar wählen. Du meinst mit "localhost" das Loopback-Interface und alle darauf zeigenden Routing-Einträge. Wenn localhost aber 127.0.0.0/8 umfassen würde, müsste ein auf 127.0.1.1 lauschender Server auch mit "localhost" angesprochen werden können. Das ist aber nicht der Fall. Für das vorliegende Problem war ausschlaggebend, dass localhost nur der Hostname für 127.0.0.1 ist.
Ich bin davon ausgegangen, dass die Requests beide auf 127.0.0.1 gehen.
Tja, ein (HTTP)Request ist eben nicht nur IP, sondern auch TCP und HTTP. Wenn ein HTTP-Request auf einen bestimmten Hostnamen funktionieren soll, muss der Server den Namen kennen (in ServerKonfig).
HTTP spielte bei dem Versuch noch keine Rolle. Und diese Antwort hat auch nichts mit seiner Annahme zu tun. Mit Telnet kamen erst einmal nur IP und TCP zum Einsatz. Schon das hätte zum Erfolg führen müssen. Der Hostname wird erst nach dem Verbindungsaufbau übergeben. Dass der Erfolg nicht eintrat lag wohl eher daran, dass der Apache nicht so konfiguriert war, dass er auf der Adresse 127.0.1.1:80 lauschte. Es war wohl nur Listen 127.0.0.1:80 konfiguriert.
Ein Hostname kommt erst später bei der VirtualHost-Konfiguration zum Einsatz. Unabhängig davon muss erstmal der Verbindungsversuch auf die unter Listen angegebenen Adressen/Ports funktionieren. Der HTTP-Header Hostname legt nur fest, was am Ende ausgeliefert wird (zum Beispiel Dokument X oder Y mit StatusCode 200 oder Fehlermeldungsdocument mit Statuscode 4xx/5xx) und nicht, ob der Verbindungsaufbau klappt oder scheitert.
Lo!