Почему простой http-сервер работает не в 127.0.0.0:8080, а в 127.0.0.1:8080?

Мне нужно запустить простой http-сервер с использованием nodejs. Я установил в своем локальном репо, используя npm. Когда я запускаю приведенную ниже команду, я получаю следующее сообщение

nodejs node-modules/http-server/bin/http-server -a 127.0.0.0
Starting up http-server, serving ./ on: http://127.0.0.0:8080

Но сервер не работает на http://127.0.0.0:8080. Все, что я мог видеть на экране, это: Веб-страница недоступна

Если я изменю команду как,

nodejs node-modules/http-server/bin/http-server -a 127.0.0.1

он запускает локальный сервер по адресу http://127.0.0.1:8080.

Я не понимаю, что происходит. Может ли кто-нибудь помочь мне понять, что здесь происходит?

Заранее спасибо!!


person SELVA    schedule 22.08.2015    source источник
comment
127.0.0.0 — сетевой адрес (с сетевой маской 255.0.0.0 или 127.0.0.0/8). 127.0.0.1 — это адрес хоста в этой сети. Из superuser.com/questions/575647/   -  person Joshua Terrill    schedule 22.08.2015


Ответы (2)


127.0.0.0 не является допустимым адресом.

См. эту статью.

person Kamen Minkov    schedule 22.08.2015

Прежде всего взгляните на этот вопрос, который говорит вам, почему, в то время как адрес оканчивающееся на .0 вполне допустимо, вам следует избегать его использования (подсказка: устаревшие причины).

Опять же, узел явно сообщает вам, где запускается сервер, вы разместили его в своем вопросе:

Starting up http-server, serving ./ on: ---> http://127.0.0.1:8080 <---

Более того, 127.0.0.0 — это не петлевой адрес, а общий (потенциально назначаемый) сетевой адрес. 127.0.0.1, с другой стороны, является петлевым адресом, что означает, что он назначен вашей машине и доступен только с вашей машины. Взгляните на эту статью в Википедии.

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

person Gian Marco Toso    schedule 22.08.2015