Как работает localhost 127.0.0.1?

Я нашел некоторые статьи, связанные с этим, но их было недостаточно для меня. Я хочу знать, как работает localhost и почему это одно и то же на многих разных машинах?

Как localhost host блокирует доступ к веб-сайту, когда мы используем его в файле host чтобы заблокировать веб-сайт?

Я не буду говорить о случае Windows здесь, потому что это немного по-другому, но скажем так: во всех * Unix-подобных операционных системах у вас есть два сетевых устройства:

  • Устройство петлевой петли
  • Устройство Ethernet

Первый – чисто «виртуальный». Это похоже на Ethernet-штекер, который вы не видите. Второй имеет отношение к штепсельной вилке Ethernet на вашем компьютере.

Введите описание изображения здесь

Что делает интерфейс loopback? Каждый трафик, который вы отправляете в loopback, вернется.

Подобно тому, как ваше устройство Ethernet получает IP-адрес (например, 192.168.1.20), устройство loopback также будет иметь IP-адрес, а именно 127.0.0.1. Чтобы это стало проще, вы также можете получить доступ к нему через localhost .

Если вы посмотрите на типичный файл Unix /etc/hosts , вы увидите, что 127.0.0.1 сопоставляется с «localhost». Поэтому всякий раз, когда вы вводите «localhost», ваш компьютер будет знать, чтобы позвонить 127.0.0.1.

И именно поэтому вы можете «блокировать» приложения. Предположим, вы не хотите, чтобы ваш компьютер отправлял данные в Microsoft. Затем вы можете просто перенаправить каждый запрос на microsoft.com на 127.0.0.1. Каждая попытка связаться с microsoft.com приведет к сбою.

* Каждая система, на самом деле имеющая аппаратный порт Ethernet

Адреса интернет-протокола (IP) попадают в одну из четырех основных категорий.

  1. Адреса, используемые для связи с другими компьютерами по всему миру,
  2. Адреса, используемые для связи с компьютерами только в определенной компании или сети,
  3. Адреса, используемые для передачи информации между компьютерами в сети,
  4. Адреса, используемые для того, чтобы компьютер мог разговаривать сам с собой.

По соглашению 127.0.0.1 является одним из тех адресов, которые попадают в последнюю из этих категорий.

Как люди, мы не очень хорошо помним номера IP-адресов, но у нас нет проблем с запоминанием имен, таких как superuser.com, http://www.google.com и другие подобные имена. Когда интернет был небольшим (очень маленьким), люди поделились файлом «хозяев» с другими людьми в Интернете, чтобы им не приходилось запоминать номера. Этот файл hosts содержит пары IP-адресов и одно или несколько имен хостов. Когда кто-то пытался получить доступ к хосту по его названию, компьютерное программное обеспечение достаточно знало, чтобы посмотреть его в файле hosts. С тех пор Интернет настолько вырос, что мы теперь используем систему доменных имен (DNS), чтобы разрешать имена на IP-номера в дополнение к использованию старого файла хостов. Большинство компьютеров настроены на поиск имен в файле hosts, а затем в DNS, если это не удается.

Теперь, когда у вас есть фон, вот как это работает (обычно):

Когда вы добавляете эту запись в свой файл hosts, каждый раз, когда ваш компьютер снова пытается найти сайт http://www.foo.com, он попытается достичь этого сайта на IP-адресе 127.0.0.1, потому что вы сказали ему, что это интернет-адрес для www. foo.com. Помните, что 127.0.0.1 позволит компьютеру разговаривать с самим собой, поэтому попытка перейти к 127.0.0.1 в вашем браузере попытается связаться с веб-сервером на вашем компьютере. Если вы поставили 2.3.4.5 вместо 127.0.0.1, он попытался бы связаться с компьютером по адресу 2.3.4.5 при открытии http://www.foo.com.

 127.0.0.1 localhost 127.0.0.1 www.foo.com 127.0.0.1 foo.com 

Плохая вещь о том, как использовать файл hosts для таких вещей, как только вы добавляете запись в файл hosts, вы берете на себя ответственность за обновление этой информации. Если вы не поместите запись в свой файл hosts, ваш компьютер попытается использовать DNS для поиска IP-адреса, а затем использовать этот IP-адрес для связи с сервером.

Хорошая вещь в том, что если вы никогда не захотите разрешать кому-либо разговаривать с http://www.foo.com только с именем хоста на вашем компьютере, добавление записи в файл вашего хоста может (ключевое слово – может) предотвратить это. Если цель состоит в том, чтобы предотвратить когда-либо доступ к определенному сайту любыми способами (а не только по имени хоста), есть и другие более надежные способы предотвратить это, как правильно, используя брандмауэр.

Localhost или 127.0.0.1 – это просто встроенное имя для вашего локального компьютера.

То есть 127.0.0.1 называется «loopback», потому что это просто указатель, который указывает на ваш компьютер. Это зарезервированный IP-адрес, который также может быть указан как локальный хост по определению.

Цель этого заключается в том, чтобы позволить разговаривать со своим компьютером, отправив сигнал наружу, а затем зациклив обратно, чтобы сигнал также считывался на том же компьютере.

Предположим, что вы используете сервер на своей машине – для доступа к нему вам нужно отправить запрос на сервер (отправить пакет до 127.0.0.1), и ваш сервер должен его прочитать (ваша система отбрасывает пакет на Ваша локальная система на 127.0.0.1, которая затем считывается вашим серверным программным обеспечением).

Во второй части вашего вопроса, если вы помещаете имя хоста веб-сайта в файл hosts с адресом 127.0.0.1, это означает, что при вводе адреса в свой браузер вместо того, чтобы использовать DNS для поиска правильного адреса, он находит его В вашем файле hosts сначала разрешает его на localhost и вместо перехода на адрес веб-сайта просто начинает разговаривать с вашей машиной, что приводит к тому, что веб-сайт не загружается.

Я обнаружил презентацию в Руководстве по TCP / IP, которое показалось мне очень ярким:

Обычно, когда приложение TCP / IP хочет отправить информацию, эта информация перемещается вниз по уровням протокола на IP, где она инкапсулирована в IP-датаграмму . Затем датаграмма переходит на уровень канала передачи данных физической сети устройства для передачи на следующий скачок на пути к IP-адресату.

Тем не менее, один специальный диапазон адресов отложен для функциональности loopback . Это диапазон от 127.0.0.0 до 127.255.255.255. IP-датаграммы, отправленные хостом на 127.x. X. X loopback-адрес не передаются на уровень канала передачи данных для передачи. Вместо этого они «возвращаются» к исходному устройству на уровне IP. По сути, это представляет собой «короткое замыкание» обычного стека протоколов; Данные отправляются тремя уровнями реализации IP-устройства, а затем сразу же получаются им.


Кроме того, Rutgers имеет курс Networking, который включает в себя эту иллюстрацию нормальной связи между ведущими,

Нормальная связь между хостами

И этот один из потоков данных обратной связи:

Поток данных обратной петли

  • Запуск приложения Facebook на localhost
  • Соединение RMI отказалось на localhost
  • Firefox и Chrome замедляются на localhost; известное исправление не работает в Windows 7
  • Как подключиться к моему http: // localhost веб-серверу от Android Emulator в Eclipse
  • Я не могу получить доступ к http: // localhost, но http://127.0.0.1 работает нормально
  • Отправка и получение пакетов UDP между двумя программами на одном компьютере
  • Firefox на Ubuntu не может подключиться к локальному виртуальному хосту, когда сеть отключена
  • Использование reCAPTCHA на локальном хосте
  • Почему мой localhost не 127.0.0.1, а :: 1, и что это за нотация?
  • Как изменить xampp localhost в другую папку (за пределами папки xampp)?
  • Локальный хост не работает в chrome и firefox
  • Interesting Posts

    Почему меньше, когда у вас может быть больше? (Пейджеры на * Nix)

    Я обновился до Windows 10, и теперь я заблокирован из своего компьютера

    Android WebView: обработка изменений ориентации

    Что случилось с отключением файла страницы Windows?

    В чем отличия между Mustache.js и Handlebars.js?

    Windows 7 второй монитор выключается после запроса UAC

    Как издеваться над запросом на controller в ASP.Net MVC?

    Загрузите несколько файлов async и дождитесь их завершения до выполнения остальной части кода.

    Android Studio – локального пути не существует

    Где найти файл сертификата, чтобы я мог добавить программу в «Trusted Publishers» в certmgr?

    Почему я не должен держать вещи, производящие статическое электричество возле моего компьютерного шкафа?

    Настройка авторизации в ASP.NET MVC

    Как я могу поменять цвета с помощью GIMP?

    Веб-страница работает в IE, Chrome и Firefox, но не при использовании элемента управления .NET WebBrowser

    \ Boot \ BCD Состояние: ошибка 0xc000000f

    Давайте будем гением компьютера.