【发布时间】:2019-07-10 19:30:09
【问题描述】:
我整天都在寻找这个。我想要的只是使用 Node JS 获取给定网站的 http 响应标头 以及 状态代码。就这么简单。
对于这个简单的问题,我检查的所有答案和文档似乎都过于复杂,而且我似乎无法让它们发挥作用。
例如,一个答案为我提供了此代码
const https = require('https')
const options = {
hostname: 'google.com'
}
const req = https.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`)
res.on('data', (d) => {
process.stdout.write(d)
})
})
req.on('error', (error) => {
console.error(error)
})
req.end()
用google试了一下,它显示的响应码是301,这显然是错误的
对于那个例子,我相信正确的代码应该是“200”表示 OK。加上这个没有显示所有的标题。
【问题讨论】:
-
301 是正确的状态码,表示页面已被重定向。您正在尝试点击
google.com,然后重定向到https://google.com,从而重定向 -
你应该先阅读HTTP Redirections。此外,验证here 地址
google.com返回的状态码是301,然后是302,最后是200。这就是Google 将用户重定向到他们的HTTPS 协议的方式。默认情况下,调用google.com是 HTTP 协议。尝试直接调用:https://www.google.com以防止重定向。 -
使用该代码直接在 https 上调用 google 会出现错误
-
@RaviMattar 直接致电
https://www.google.com。 -
我怎样才能得到所有的状态码?
标签: javascript node.js http-headers