NodeJS GET请求中的Http vs.www

时间:2018-09-28 02:16:20

标签: node.js get request nodes axios

我有以下使用NodeJS的简单GET请求:

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 :(得分:1)

http://-是协议。无论您是在浏览器中还是在Node.js代码中尝试,它都是必需的。在浏览器中,当您输入www.federalregister.gov时,浏览器将自动为您加上“ http://”。但是在代码中,您将需要使用以协议(http://或https://)开头的url,否则该请求将失败。

federalregister.govwww.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