Jeśli podam adres IP witryny internetowej, a nie ciąg znaków, czy mój lokalny serwer DNS to zrozumie i czy pominę proces DNS? [duplikować]


12

To czysto z ciekawości. Ale gdybym wpisał adres IP witryny, czy żądanie nadal przejdzie proces wyszukiwania do przodu? Jeśli nie, to w którym momencie i na którym etapie zdaje sobie sprawę, że jest to lokalizacja według adresu IP, a nie nazwa hosta jako ciąg?

W jaki sposób zostanie to zapisane w moim pliku hosta? Jeśli przejdzie przez cały proces wyszukiwania, czy plik hosta będzie zawierał ciąg nazwa hosta, a także adres IP i zapełni się lokalnie?


1
Domain Name System, to tłumaczy adres URL (google.com) na adres IP, więc jeśli używasz adresu IP, nie musi on wyszukiwać nazwy, omijając system DNS. en.wikipedia.org/wiki/Domain_Name_System
Moab

Odpowiedzi poniżej są poprawne, przeglądarki są wystarczająco inteligentne, aby nie sprawdzać adresu IP w przód. Sprawdzanie adresu IP w przód nigdy nie jest dobrym pomysłem, serwer DNS może na niego zareagować na 3 sposoby: 1) Większość serwerów DNS po prostu zwróci ten sam adres IP. 2) Inne serwery DNS nie mogą rozpoznać nazwy „dns” na adresie IP i poinformują Cię o tym. 3) Niektóre (bezpłatne) serwery DNS nie mogą rozpoznać „nazwy dns” i podać adres IP, który przekierowuje do własnej strony wyszukiwania (zwykle pełnej reklam).
user1793963

1
Nazwa domeny jest niezbędna, jeśli serwer WWW obsługuje wiele witryn. Ma pojedynczy adres IP i bez nazwy domeny nie może zrozumieć, którą stronę chcesz. Jeśli istnieje tylko jedna strona internetowa, będzie ona działać z IP w ten sam sposób.
i486

1
Pamiętaj, że nazwa hosta jest wysyłana nie tylko do DNS w celu tłumaczenia, ale także do samego serwera WWW. Oznacza to, że serwer internetowy obsługujący wiele witryn nie może wiedzieć, które z nich chcesz. Jest to oczywiście problem z IPv4; z IPv6 każda strona internetowa może mieć własny adres IP.
MSalters

1
Następne pytanie brzmi: skąd przeglądarka wie, że 2001:feed:face:dead::beef:8080jest to adres IPv6 z określonym portem, a nie tylko źle sformatowany adres URL ...;)
Mark Henderson

Odpowiedzi:


15

Jeśli użyjesz adresu IP, system operacyjny będzie wiedział, że jest to adres IP natychmiast i nie będzie wyszukiwał do przodu.

Kiedy wykonujesz żądanie HTTP, pierwszym krokiem jest uzyskanie adresu IP miejsca docelowego, aby przeglądarka mogła komunikować się z serwerem. Do komunikacji z serwerem wszystko dzieje się przez IP, od adresu IP do adresu IP, dlatego nazwa serwera nie jest potrzebna do tej komunikacji. Jest on jednak przekazywany w nagłówkach HTTP jako Host:nagłówek, który informuje serwer internetowy, której witryny szukasz, jeśli hostuje wiele witryn.

W przypadku dostępu przez adres IP tak się nie dzieje i wyświetlana jest strona domyślna.

Twój hostsplik jest plikiem statycznym, nie zmienia się w wyniku żadnych podjętych działań, z wyjątkiem przypadków jego bezpośredniej edycji (lub skryptów lub aplikacji, które go modyfikują).


2
Warto również zauważyć, że jeśli wpiszesz adres IP w przeglądarce, takiej jak Chrome, może przeprowadzić wyszukiwanie w Google przed zwykłym załadowaniem strony.
sventechie

1
Zauważ, że wewnętrzne łączenie poszczególnych obiektów tworzących stronę jest prawdopodobnie wykonywane przez FQDN, więc podczas gdy żądanie roota uruchomi się bez wyszukiwania DNS, ale każdy obraz, arkusz stylów, plik skryptu itp. Prawie na pewno zostanie rozwiązany przez DNS żądaj, gdy przeglądarka próbuje wyrenderować stronę główną i pobiera wszystkie zasoby potomne.
Frank Thomas

2
@FrankThomas W większości przypadków, gdy zasób znajduje się na tym samym serwerze, do zasobów odwołują się względne adresy URL, a zatem można uzyskać do niego dostęp za pomocą tej samej metody, co w pierwotnym żądaniu - za pośrednictwem adresu IP. Wyjątkiem jest sytuacja, w której w nagłówkach używany jest parametr base_href, a więc nałóż na hosta, aby stosowały względne adresy URL. Jeśli zostanie użyta nazwa FQDN, to tak, gra się kończy.
Paul

In the case of accessing by IP address, this does not happen, and the default site is presented.O wiele bardziej prawdopodobne jest wyświetlenie strony błędu.
User112638726

@sventechie Naprawdę? Wiesz, dlaczego to zrobiłoby? Jaka jest tego wartość?
Athoxx

3

Jak napisali inni, używając adresu IP faktycznie pomijasz DNS, który umożliwia dostęp na przykład do witryn programistycznych bez nazwy hosta.

Dodanie fałszywej nazwy hosta IP do / etc / hosts jest znowu bardzo powszechne w witrynach programistycznych. W przeciwieństwie do bezpośredniego korzystania z adresu IP to a) nadal pomija DNS b) powoduje, że przeglądarka dodaje Hostnagłówek żądania do żądania HTTP, umożliwiając na przykład wirtualnym hostom na lokalnym serwerze.


Warto zauważyć, że jeśli z jakiegokolwiek powodu adres IP zostanie zaktualizowany, plik HOSTS nie jest aktualizowany wraz z nim, co może prowadzić do nieoczekiwanego zachowania i witryny, która wydaje się już nie działać. Spojrzenie na plik hosts jest jedną z ostatnich rzeczy, które ludzie robią podczas rozwiązywania problemu i mogą zostać całkowicie przeoczone.
LPChip

@LPChip fair, ale pamiętaj, że kilkakrotnie podkreśliłem, że jest to bardziej programista - praktyka lokalna niż cokolwiek innego.
chx
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.