Wenn ich eine IP-Adresse für eine Website anstelle des Zeichenfolgenformulars eingebe, versteht mein lokaler DNS-Server dies und werde ich den DNS-Prozess umgehen? [Duplikat]

12

Dies ist nur aus Neugier. Aber wenn ich die IP einer Website eingeben würde, würde die Anfrage trotzdem den Forward-Lookup-Prozess durchlaufen? Wenn nicht, zu welchem ​​Zeitpunkt und in welchem ​​Schritt wird erkannt, dass dies der Speicherort nach IP und kein Hostname als Zeichenfolge ist?

Wie würde dies in meiner Hostdatei aufgezeichnet werden? Wenn die Hostdatei den gesamten Suchvorgang durchläuft, enthält sie den String-Hostnamen sowie die IP-Adresse und wird lokal ausgefüllt?

Drew D.
quelle
1
Domain Name System: Dies übersetzt eine URL (google.com) in die IP-Adresse. Wenn Sie also eine IP-Adresse verwenden, muss keine Namenssuche durchgeführt werden, wobei das DNS-System umgangen wird. en.wikipedia.org/wiki/Domain_Name_System
Moab
Die folgenden Antworten sind korrekt. Browser sind intelligent genug, um eine IP-Adresse nicht vorwärts zu suchen. Eine Vorwärtssuche einer IP-Adresse ist niemals eine gute Idee. Es gibt drei Möglichkeiten, wie ein DNS-Server darauf reagieren kann: 1) Die meisten DNS-Server geben einfach dieselbe IP-Adresse zurück. 2) Andere DNS-Server können den "DNS-Namen" nicht in eine IP auflösen und werden dies Ihnen mitteilen. 3) Einige (kostenlose) DNS-Server können den "DNS-Namen" nicht auflösen und geben Ihnen eine IP, die Sie zu ihrer eigenen Suchseite weiterleitet (normalerweise voller Anzeigen).
user1793963
1
Der Domänenname ist erforderlich, wenn der Webserver mehrere Websites hostet. Es hat eine einzige IP und ohne Domainnamen kann es nicht verstehen, welche Site Sie wollen. Wenn es nur eine Website gibt, funktioniert diese auf dieselbe Weise mit IP.
i486
1
Beachten Sie, dass der Hostname nicht nur zur Übersetzung an DNS gesendet wird, sondern auch an den Webserver selbst. Dies bedeutet, dass ein Webserver, der mehrere Websites bedient, nicht wissen kann, welche dieser Websites Sie möchten. Dies ist natürlich ein IPv4-Problem. Mit IPv6 kann jede Website ihre eigene IP-Adresse haben.
MSalters
1
Die nächste Frage lautet nun: Woher weiß Ihr Browser, dass 2001:feed:face:dead::beef:8080es sich um eine IPv6-Adresse mit einem bestimmten Port und nicht nur um eine wirklich schlecht formatierte URL handelt ...;)
Mark Henderson

Antworten:

15

Wenn Sie eine IP-Adresse verwenden, erkennt das Betriebssystem sofort, dass es sich um eine IP-Adresse handelt, und führt keine Vorwärtssuche durch.

Wenn Sie eine HTTP-Anforderung ausführen, müssen Sie zunächst die IP-Adresse des Ziels ermitteln, damit der Browser mit dem Server kommunizieren kann. Für die Kommunikation mit dem Server geschieht alles über IP, von IP-Adresse zu IP-Adresse. Daher wird der Name des Servers für diese Kommunikation nicht benötigt. Es wird jedoch in den HTTP-Headern als Host:Header übergeben, um dem Webserver mitzuteilen, nach welcher Website Sie suchen, wenn mehrere Websites gehostet werden.

Beim Zugriff über die IP-Adresse geschieht dies nicht und die Standardwebsite wird angezeigt.

Ihre hostsDatei ist eine statische Datei. Sie ändert sich durch keine von Ihnen ausgeführte Aktion, es sei denn, Sie bearbeiten sie direkt (oder Sie haben Skripte oder Anwendungen, die sie ändern).

Paul
quelle
2
Beachten Sie auch, dass bei Eingabe der IP-Adresse in einem Browser wie Chrome möglicherweise eine Google-Suche durchgeführt wird, bevor die Website einfach geladen wird.
Sventechie
1
Beachten Sie, dass die interne Verknüpfung der einzelnen Objekte, aus denen die Seite besteht, wahrscheinlich über den vollqualifizierten Domänennamen erfolgt. Während die Stammanforderung ohne DNS-Suche ausgeführt wird, werden jedoch mit ziemlicher Sicherheit alle Bilder, Stylesheets, Skriptdateien usw. von DNS aufgelöst Anfrage, wenn Ihr Browser versucht, die Stammseite zu rendern und alle untergeordneten Ressourcen herunterlädt.
Frank Thomas
2
@FrankThomas In den meisten Fällen, in denen sich das Asset auf demselben Server befindet, werden die Assets durch relative URLs referenziert und daher über dieselbe Methode wie die ursprüngliche Anforderung aufgerufen - über IP. Die Ausnahme hiervon wäre, wenn base_href in den Headern verwendet wird, und so den Host vorgeben, den relative URLs verwenden sollen. Wenn ein vollqualifizierter Domänenname verwendet wird, ist das Spiel beendet.
Paul
In the case of accessing by IP address, this does not happen, and the default site is presented.Es ist weitaus wahrscheinlicher, dass Sie eine Fehlerseite erhalten.
User112638726
@sventechie Wirklich? Irgendeine Idee, warum es das tun würde? Wie ist der Wert davon?
Athoxx
3

Wie andere geschrieben haben, überspringen Sie durch die Verwendung einer IP-Adresse tatsächlich das DNS, das den Zugriff auf beispielsweise Entwicklungssites ohne Hostnamen ermöglicht.

Das Hinzufügen eines IP-Mock-Hostnamens zu / etc / hosts ist für Entwicklungssites wieder sehr verbreitet. Im Gegensatz zur direkten Verwendung der IP-Adresse wird dies a) DNS immer noch überspringen b) den Browser veranlassen, den HostAnforderungsheader zur HTTP-Anforderung hinzuzufügen, um beispielsweise virtuelle Hosts auf einem lokalen Server zuzulassen.

chx
quelle
Es ist erwähnenswert, dass, wenn aus irgendeinem Grund die IP-Adresse aktualisiert wird, die HOSTS-Datei nicht zusammen mit dieser aktualisiert wird, was zu unerwartetem Verhalten und einer Site führen kann, die anscheinend nicht mehr funktioniert. Das Betrachten der Hosts-Datei ist eines der letzten Dinge, die Menschen bei der Fehlerbehebung tun, und wird möglicherweise völlig übersehen.
LPChip
@LPChip fair, aber bitte beachten Sie, dass ich mehrmals betont habe, dass dies mehr ein Entwickler ist - lokale Praxis als alles andere.
chx