从请求头中获取长度,node

我正在向一个网站发起 GET 请求,并希望从响应头中获取 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

我从这里学到,'transfer-encoding': 'chunked' 禁用了 content-length。那么我如何才能获取呢?

就像 Chrome 浏览器显示的那样。甚至可能不是我想要获取的 content-length 响应。

Chrome dev tool

点赞
用户9160769
用户9160769

以下是网站后端的一种方式。如果服务器默认情况下不包括Content-Length,通常在文件交换期间会包括它,一般来说,在 HTTP 协议中没有明确要求你想要的头部的可能性。

2019-03-05 08:27:24