从请求头、节点获取内容长度

get content-length from request headers, node

我正在向网站发出获取请求,并希望从响应 headers 中获取 content-length

import rp from "request-promise";

const options = {
  uri: "http://www.dadaabstories.org/",
  resolveWithFullResponse: true
};

rp(options).then(res => {
  console.log(res.headers);
}).catch(err => {
  throw err;
});

我得到的回复没有 content-length:

server: 'openresty',
date: 'Tue, 05 Mar 2019',
'content-type': 'text/html; charset=UTF-8',
'transfer-encoding': 'chunked',
connection: 'close',
vary: 'Accept-Encoding, X-UA-Device, Accept, Accept-Encoding',
'x-rid': 'adbfe4b6b62c7a71bce234e33a6f07f5',
p3p: someData',
'x-xss-protection': '1; mode=block',
'x-content-type-options': 'someData',
'x-tumblr-user': 'someData',
'x-tumblr-pixel-0': 'someData',
'x-tumblr-pixel-2': 'someData',
'x-tumblr-pixel': 'someData',
link: 'someData',
'x-robots-tag': 'noindex, nofollow',
'x-ua-compatible': 'someData',
'x-ua-device': 'someDevice'

但是对于这个演示网站 http://stack.imgur.com/ 我得到 content-length

我了解到 from this 'transfer-encoding': 'chunked' 正在禁用 content-length。那么我实际上怎样才能得到它呢?

喜欢 Chrome 浏览器显示大小的方式。甚至可能不是我想要得到的 contetn-length 回应。

这是网站后台的一种方式。如果服务器默认不包含 Content-Length,那么它通常在文件交换期间包含,通常在 HTTP 协议中不可能明确询问您想要的 header。