Node.js: Как прокси-сайты работают с относительными URL-адресами? - PullRequest
2 голосов
/ 23 сентября 2011

Я создал относительно простой прокси в Node, который позволяет мне загружать страницы и отображать их. Это нормально, хотя некоторые сценарии , ссылки , формы и изображения кажутся неработающими, поскольку они указывают на относительные файлы. В качестве проекта я пытаюсь создать полнофункциональный веб-прокси.

Как сайты типа Proxify решают эту проблему?

Программа для справки:

var app = require('express').createServer();
var request = require('request'),
sys = require('sys'),
fs=require('fs');

app.get('/url', function(req, res){
  console.log(req.query.link);

  request({ uri: req.query.link,
            headers: {"User-Agent": "Mozilla/5.0 (Windows  NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0"}
          }, function (error, response, body) {

             if (error && response.statusCode !== 200) {    
               console.log('Error when contacting google.com')
             }

  res.send(body, {"Content-type": "text/html"});
  res.end(); 

  });
});

1 Ответ

0 голосов
/ 23 сентября 2011

Прямо сейчас ваш код только передает html-файл, а клиент получает остальное непосредственно с реального сайта. Вы захотите использовать что-то вроде узла jQuery, чтобы заменить все src / href в документе, чтобы они проходили через ваш прокси, и в то же время вы можете проверить, являются ли они относительными или нет, и предшествуют ли они текущему URL а затем создайте свой прокси-адрес.

...