Http против www в NodeJS GET Запрос - PullRequest
0 голосов
/ 28 сентября 2018

У меня следующий простой запрос GET с использованием NodeJS:

const axios = require("axios");
axios.get("http://federalregister.gov/api/v1/public-inspection-documents.json")
  .then((res) => {
    console.log(res);
  })
  .catch((err) => {
    console.log(err);
  });

Почему этот запрос работает, когда я использую http://,, а не www?Например, следующий код работает в браузере, но не с axios:

  const axios = require("axios");
    axios.get("www.federalregister.gov/api/v1/public-inspection-documents.json")
      .then((res) => {
        console.log(res);
      })
      .catch((err) => {
        console.log(err);
      });

1 Ответ

0 голосов
/ 28 сентября 2018

http:// - это протокол.Это обязательно, независимо от того, пытаетесь ли вы в браузере или в коде Node.js.В браузере, когда вы вводите www.federalregister.gov, браузер автоматически добавит для вас «http://"». Но в коде вам потребуется URL для запуска с протоколом (http: // или https://),, без которого запрос не будет выполнен.

federalregister.gov и www.federalregister.gov - оба домена, указывающие на один и тот же сервер. Не имеет значения, какой из них вы используете. Как вы можете видеть в результатах nslookup ниже, оба домена указывают натот же IP: 184.72.241.172.

> server 8.8.8.8
DNS request timed out.
    timeout was 2 seconds.
Default Server:  [8.8.8.8]
Address:  8.8.8.8

> set type=A
> federalregister.gov
Server:  [8.8.8.8]
Address:  8.8.8.8

Non-authoritative answer:
Name:    federalregister.gov
Address:  184.72.241.172

> www.federalregister.gov
Server:  [8.8.8.8]
Address:  8.8.8.8

Non-authoritative answer:
Name:    www.federalregister.gov
Address:  184.72.241.172
...