Warum hat Yosemite Safari nie eine Zeitüberschreitung bei * .local?

3

Wenn Sie in der in Mac OS Yosemite enthaltenen Version des Safari-Webbrowsers versuchen, eine Website aufzurufen, deren Hostname auf ".local" endet, bleibt der Browser für immer dort und wartet auf eine Antwort, ohne Zeitüberschreitung. Zum Beispiel, " http: //foobar.local " oder " https: //baz.qux.local Msgstr "" "Dasselbe passiert, wenn Safari im iOS - Simulator auf einem Mac ausgeführt wird (aber auf einem echten iOS - Gerät tritt bei der Anforderung eine Zeitüberschreitung auf).

Ich bin nur neugierig - warum ist das so? Ist es wahrscheinlich ein Safari-Fehler oder ein Netzwerkproblem in Yosemite, das ich durch Bearbeiten einer Konfigurationsdatei beheben könnte?

Ich arbeite an einer Website, die unterschiedliche URLs für Medien verwendet. Wenn wir die Website lokal ausführen (für die Entwicklung), verwenden wir .local-Hostnamen für die Mediensites, die bisher einwandfrei funktionieren, solange / etc / hosts diese Hostnamen verweist bis 127.0.0.1. Aber jetzt, unter Yosemite, hängen diese Anfragen ab. Bevor ich die URLs in unserem Code aktualisiere und allen Entwicklern mitteilte, dass sie ihre Hosts-Datei mit neuen Hostnamen aktualisieren sollen, wollte ich wissen, ob es eine einfachere Korrektur gibt.

Brian Kendig
quelle

Antworten:

1

Ich nehme an, das liegt daran, dass das Nachschlagen eines .local-Hostnamens im Grunde eine Suchanforderung für Bonjour-Dienste ist. Geräte & amp; Die Dienste registrieren sich über Multicast. Da foobar.local also auf keine IP verweist (es sei denn, Sie erstellen sie), erreicht Safari wahrscheinlich nie das Stadium des Testens der Erreichbarkeit einer Site.

In Ihrer Situation würde ich lieber a) einen einfachen DNS-Server einrichten, um Anfragen umzuleiten, oder b) Ihre Dienste über dns-sd ankündigen:

dns-sd -P Webservice _http._tcp local 80 foobar.local 127.0.0.1 path=/webservicename

Dies sollte eine Proxy-Website innerhalb Ihres Netzwerks mit dem Namen "Webservice" ankündigen, unter der der Hostname foobar.local erreichbar ist http://127.0.0.1/webservicename

Asmus
quelle
Interessant ist jedoch, dass nur Safari auf lokalen Domains hängen bleibt. In einem Terminal schlägt "host foobar.local" sofort fehl, da es nicht aufgelöst werden kann.
Brian Kendig
@BrianKendig Ja, ich denke nicht, dass dieses Verhalten in Safari hilfreich ist. Vielleicht sollten Sie es in Betracht ziehen einen Fehlerbericht bei Apple einreichen
Asmus