Ответьте изображение из другого домена, сохраняя исходный запрошенный URL [дубликат]

2
задан KJW 18 September 2013 в 19:13
поделиться

2 ответа

Хотя я бы точно написал @ LaurentPerrin ответ, для полноты я должен сказать следующее:

Недостатком этого метода является то, что заголовки запроса, которые вы отправляете на somewhere.com, не связаны с запросить заголовки вашего сервера. Например: если запрос, отправленный вам, имеет определенное значение для Accept-Language, вполне вероятно, что (поскольку код стоит), вы не укажете одно и то же значение для Accept-Value при проксировании с somewhere.com. Таким образом, ресурс может быть возвращен вам (а затем от вас к исходному реквестеру) на неправильном языке.

Или если запрос к вам приходит с Accept-Encoding: gzip, текущий код получит большой файл несжатый , и будет передавать его обратно без сжатия, когда вы могли бы сохранить пропускную способность и время, приняв и передав обратно сжатый файл.

Это может быть или не быть актуальным для вы.

Если есть важные заголовки, которые вы чувствуете, вам нужно пройти, вы можете либо добавить код, чтобы явно скопировать их из вашего запроса на запрос, который вы отправляете somewhere.com, а затем скопировать соответствующие заголовки ответов назад, или используйте node-http-proxy в https://github.com/nodejitsu/node-http-proxy .

Пример для пересылки прокси с помощью node-http proxy https://github.com/nodejitsu/node-http-proxy/blob/master/examples/http/forward-proxy.js

3
ответ дан Nitzan Shaked 17 August 2018 в 21:59
поделиться

Установите запрос , затем:

var http = require('http'),
    request = require('request'),
    remote = 'http://somewhere.com';

http.createServer(function (req, res) {
  // http://somewhere.com/noo.bin
  var remoteUrl = remote + req.url;
  request(remoteUrl).pipe(res);
}).listen(8080);
6
ответ дан Laurent Perrin 17 August 2018 в 21:59
поделиться
  • 1
    спасибо, но как я могу сохранить имя файла? его изменить на мой url не remore имя файла! – Ali.MD 30 April 2017 в 09:27
Другие вопросы по тегам:

Похожие вопросы: