Node.jsで作るプロキシサーバ
Node.jsを使うとプロキシサーバを簡単に書くことができます。
こんな感じで。
var url = require('url'), http = require('http');
var port = 1234;
http.createServer(function(serverRequest, serverResponse) { var requestUrl = url.parse(serverRequest.url); var body = [];
console.log(requestUrl.href);
serverRequest.on('data', function(data) { // リクエストボディを受け取る body.push(data); }); serverRequest.on('end', function() { // クライアントから受け取った通りにリクエスト var request = http.request({ host: serverRequest.headers.host, port: requestUrl.port || 80, path: requestUrl.path, method: serverRequest.method, headers: serverRequest.headers }, function(response) { serverResponse.writeHead(response.statusCode, response.headers); response.on('data', function(chunk) { // 受け取ったデータをクライアントへ送り返す serverResponse.write(chunk); }); response.on('end', function() { serverResponse.end(); }); }); if(body.length > 0) { request.write(body.join('')); } request.end(); });}).listen(port);
もちろんこれ自体には意味はありませんが、リクエストやレスポンスを自由にいじって遊ぶことができます。といっても、ブラウザの拡張機能でも大体のことができてしまうので、活躍する状況は限られると思われますが。
Node.js、まじめに使う場合にはいろいろな意見があるでしょうが、少なくとも簡単なサーバを書くには楽でいい環境だと思いました。Windowsでばっちり動くのもすばらしい。