प्रॉक्सी सर्वर क्या है?
प्रॉक्सी सर्वर क्लाइंट और वास्तविक सर्वर के बीच मध्यस्थ होता है। यह क्लाइंट से अनुरोध प्राप्त करता है, वास्तविक सर्वर को अग्रेषित करता है, प्रतिक्रिया प्राप्त करके क्लाइंट को वापस भेजता है। उपयोग: IP छिपाना, कैशिंग, सुरक्षा, एक्सेस नियंत्रण।
पायथन मॉड्यूल्स
http.server(पायथन 3 मेंSimpleHTTPServerका स्थान) — HTTP सर्वर।urllib.request— URL खोलने के लिए।
नोट: मूल कोड में SimpleWebSocketServer और SimpleHTTPSServer उपयोग किए गए हैं जो मानक लाइब्रेरी में नहीं हैं। नीचे मानक लाइब्रेरी संस्करण दिया गया है।
मानक लाइब्रेरी HTTP प्रॉक्सी (पायथन 3)
from http.server import HTTPServer, BaseHTTPRequestHandler
import urllib.request
PORT = 9012
class ProxyHandler(BaseHTTPRequestHandler):
def do_GET(self):
# पथ से URL निकालें (पहला '/' हटाएं)
url = self.path[1:] if self.path.startswith('/') else self.path
if not url.startswith(('https://', 'https://')):
self.send_error(400, "Invalid URL")
return
try:
# वास्तविक सर्वर से अनुरोध करें
response = urllib.request.urlopen(url)
# प्रतिक्रिया हेडर्स भेजें
self.send_response(response.status)
for header, value in response.headers.items():
self.send_header(header, value)
self.end_headers()
# बॉडी कॉपी करें
self.copyfile(response, self.wfile)
except Exception as e:
self.send_error(502, f"Bad Gateway: {e}")
if __name__ == '__main__':
server = HTTPServer(('localhost', PORT), ProxyHandler)
print(f"प्रॉक्सी सर्वर चल रहा है: https://localhost:{PORT}")
try:
server.serve_forever()
except KeyboardInterrupt:
print("\nसर्वर बंद हो रहा है...")
server.shutdown()
उपयोग
- सर्वर चलाएं:
python proxy.py - ब्राउज़र/क्लाइंट में प्रॉक्सी सेट करें:
https://localhost:9012 - किसी भी URL पर जाएं, अनुरोध प्रॉक्सी के माध्यम से जाएगा।
आउटपुट
प्रॉक्सी सर्वर चल रहा है: https://localhost:9012
उन्नत विशेषताएं (अभ्यास के लिए)
- HTTPS CONNECT मेथड सपोर्ट (टनलिंग)।
- कैशिंग (LRU, ETag/Last-Modified)।
- एक्सेस लॉगिंग और फ़िल्टरिंग।
- थ्रेडिंग/एसिंक (
ThreadingHTTPServer,asyncio)।