Estoy tratando de crear un servidor proxy para pasar HTTP GET
solicitudes de un cliente a un sitio web de terceros (digamos Google). Mi proxy solo necesita reflejar las solicitudes entrantes en su ruta correspondiente en el sitio de destino, por lo que si la URL solicitada por mi cliente es:
127.0.0.1/images/srpr/logo11w.png
Se debe servir el siguiente recurso:
http://www.google.com/images/srpr/logo11w.png
Esto es lo que se me ocurrió:
http.createServer(onRequest).listen(80);
function onRequest (client_req, client_res) {
client_req.addListener("end", function() {
var options = {
hostname: 'www.google.com',
port: 80,
path: client_req.url,
method: client_req.method
headers: client_req.headers
};
var req=http.request(options, function(res) {
var body;
res.on('data', function (chunk) {
body += chunk;
});
res.on('end', function () {
client_res.writeHead(res.statusCode, res.headers);
client_res.end(body);
});
});
req.end();
});
}
Funciona bien con páginas html, pero para otros tipos de archivos, solo devuelve una página en blanco o algún mensaje de error del sitio de destino (que varía en diferentes sitios).
http
, una orden de módulos relacionados de menor a mayor abstracción son:node
,http
,connect
,express
tomada de stackoverflow.com/questions/6040012/...