получить длину содержимого из заголовка запроса, узел - PullRequest
0 голосов
/ 05 марта 2019

Я делаю запрос на получение веб-сайта и хочу получить content-length из ответа headers.

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:

сервер: 'openresty',
дата: 'вт, 05 марта 2019',
'тип контента': 'text / html;charset = UTF-8 ',
' кодировка передачи ':' chunked ',
соединение:' закрыть ',
варьируется:' кодировка Accept, 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',
ссылка: 'someData',
'x-robots-tag ':' noindex, nofollow ',
' x-ua-совместимый ':' someData ',
' x-ua-device ':' someDevice '

Но для этого демонстрационного веб-сайта http://stack.imgur.com/ я получаю content-length.

Я узнал из этого , что 'transfer-encoding': 'chunked' отключает content-length.Так как на самом деле я могу получить это?

Например, как браузер Chrome показывает размер.Возможно, даже это не contetn-length ответ, который я пытаюсь получить.

Chrome dev tool

1 Ответ

0 голосов
/ 05 марта 2019

Это манера бэкэнда сайта.Если сервер по умолчанию не включает Content-Length, который обычно включается при обмене файлами, обычно в протоколе HTTP нет возможности явно запросить нужный заголовок.

...