Tôi đang cố gắng tạo một máy chủ proxy để chuyển HTTP GET
các yêu cầu từ máy khách đến trang web của bên thứ ba (giả sử google). Proxy của tôi chỉ cần phản chiếu các yêu cầu đến với đường dẫn tương ứng của chúng trên trang web đích, vì vậy nếu url được yêu cầu của khách hàng của tôi là:
127.0.0.1/images/srpr/logo11w.png
Tài nguyên sau sẽ được cung cấp:
http://www.google.com/images/srpr/logo11w.png
Đây là những gì tôi nghĩ ra:
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();
});
}
Nó hoạt động tốt với các trang html, nhưng đối với các loại tệp khác, nó chỉ trả về một trang trống hoặc một số thông báo lỗi từ trang web đích (thay đổi ở các trang web khác nhau).
http
, một trật tự các module liên quan từ thấp đến trừu tượng cao là:node
,http
,connect
,express
lấy từ stackoverflow.com/questions/6040012/...