একটি প্রক্সি সার্ভার ক্লায়েন্ট এবং আসল সার্ভারের মাঝপথে অবস্থান করে। এটি ক্লায়েন্ট থেকে অনুরোধ গ্রহণ করে, আসল সার্ভারে পাঠায়, এবং আসল সার্ভার থেকে প্রতিক্রিয়া পেলে তা ক্লায়েন্টের কাছে ফেরত পাঠায়। প্রক্সি ব্যবহার করার অনেক কারণ রয়েছে—যেমন সার্ভারের IP ঠিকানা লুকানো, কর্মক্ষমতা উন্নতি বা নিরাপত্তা বৃদ্ধি ইত্যাদি। এই আর্টিকেলে আমরা দেখব কিভাবে পাইথন ব্যবহার করে একটি সাধারণ প্রক্সি সার্ভার তৈরি করা যায়।
এই কাজের জন্য SimpleWebSocketServer, SimpleHTTPSServer এবং urllib মডিউলগুলো ব্যবহার করা যেতে পারে। নিচে আমরা দেখব কিভাবে এই মডিউলগুলোর মেথড ব্যবহার করে একটি পাইথন ক্লাস তৈরি করা যায় এবং সেই ক্লাসের ইন্সট্যান্স SimpleWebSocketServer-এ পাস করা যায়। তারপর ক্লাসে উপলব্ধ serve_forever মেথড ব্যবহার করে সার্ভার চালু করা হয়।
উদাহরণ
import SimpleWebSocketServer
import SimpleHTTPSServer
import urllib
PORT = 9012
class JustAProxy(SimpleHTTPSServer.SimpleWebSocketServer):
def do_GET(self):
url = self.path[1:]
self.send_response(200)
self.end_headers()
self.copyfile(urllib.urlopen(url), self.wfile)
httpd = SimpleWebSocketServer.SimpleWebSocketServer('localhost', PORT, JustAProxy)
print("Proxy Server at", str(PORT))
httpd.serve_forever()
আউটপুট
Proxy Server at 9012