Javascript 如何获得一个网站';s带有节点的HTTP响应头
我一整天都在找这个。我所要做的就是为使用Node JS的给定网站获取http响应头加上状态代码。那很简单 对于这个简单的问题,我检查过的所有答案和文档似乎都过于复杂,而且我似乎无法让它们正常工作 例如,一个答案为我提供了这段代码Javascript 如何获得一个网站';s带有节点的HTTP响应头,javascript,node.js,http-headers,Javascript,Node.js,Http Headers,我一整天都在找这个。我所要做的就是为使用Node JS的给定网站获取http响应头加上状态代码。那很简单 对于这个简单的问题,我检查过的所有答案和文档似乎都过于复杂,而且我似乎无法让它们正常工作 例如,一个答案为我提供了这段代码 const https = require('https') const options = { hostname: 'google.com' } const req = https.request(options, (res) => { console
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()
在谷歌上试用后,它给我的回复代码是301,这显然是错误的
对于这个例子,我相信正确的代码应该是“200”表示OK。另外,这一个不会显示所有的标题。如果我cURL
google.com
这是因为google.com
正在将我重定向到www.google.com
。然而,如果我把www.google.com
,它会给我这样的回答
这是网页。就标题而言,它们应该位于res.headers
中,根据显示以下示例的
const https = require('https');
https.get('https://encrypted.google.com/', (res) => {
console.log('statusCode:', res.statusCode);
console.log('headers:', res.headers);
res.on('data', (d) => {
process.stdout.write(d);
});
}).on('error', (e) => {
console.error(e);
});
如您所见,他们使用
console.log('headers:',res.headers)打印标题代码>。您可以使用res.headers['INSERT-header-NAME-HERE']
访问给定的标题,其中INSERT-header-NAME-HERE被替换为301是正确的状态代码,表示页面已重定向。您正试图点击google.com
,然后它会重定向到https://google.com
因此,您应该首先阅读有关重定向的内容。另外,验证地址google.com
是否返回301状态码,然后是302,最后是200。这就是谷歌将用户重定向到HTTPS协议的方式。默认情况下,调用google.com
是一种HTTP协议。尝试呼叫:https://www.google.com
直接阻止重定向。直接通过https调用google,我会得到一个error@RaviMattar呼叫https://www.google.com
直接。我怎么能得到所有的状态码?上帝啊,非常感谢!我终于明白了一点,并设法使它发挥作用。