ক্লায়েন্টের HTTP রিকোয়েস্টগুলি পরিচালনা করা ওয়েব সার্ভারের প্রধান কাজ। এটি বিশেষ আইপি ঠিকানা এবং পোর্ট নম্বর থেকে আসা HTTP অনুরোধের জন্য অপেক্ষা করে, অনুরোধটি পরিচালনা করে এবং ক্লায়েন্টের প্রতিক্রিয়া ফেরত পাঠায়। পাইথন ব্যবহার করে সহজ এইচটিটিপি সার্ভার একটি ওয়েব সার্ভার তৈরি করার জন্য মডিউল অবিলম্বে এবং সহজেই সার্ভার থেকে ফাইলের বিষয়বস্তু পরিবেশন করে। এটি ফাইল শেয়ারিংয়ের জন্যও ব্যবহার করা যেতে পারে। এর জন্য, আপনাকে ভাগযোগ্য ফাইলগুলির অবস্থানের সাথে এই মডিউলটি সক্ষম করতে হবে। এই মডিউলটি পাইথন দোভাষীর সাথে আসে। আপনার এটি ইনস্টল করার দরকার নেই। যেহেতু এই মডিউলটি একত্রিত হয়েছে http. সার্ভার পাইথন 3 এ মডিউল, তাই আপনাকে চালাতে হবে http. সার্ভার পাইথন 3 এ ওয়েব সার্ভার চালানোর জন্য। HTTP রিকোয়েস্ট এবং ফাইল শেয়ার করার জন্য ওয়েব সার্ভার কিভাবে ব্যবহার করা যায়, এই টিউটোরিয়ালে দেখানো হয়েছে।
টার্মিনাল থেকে ওয়েব সার্ভার চালান
টার্মিনাল থেকে ওয়েব সার্ভার চালানোর জন্য নিম্নলিখিত কমান্ডটি চালান। যদি কমান্ডে কোন পোর্ট নম্বর সংজ্ঞায়িত করা না হয়, তাহলে ওয়েব সার্ভার ডিফল্টরূপে 8000 পোর্টে শুরু হবে।
$ python3 -m http।সার্ভার
ওয়েব সার্ভার সঠিকভাবে শুরু হলে নিচের আউটপুট দেখা যাবে। সার্ভার বন্ধ করতে CTRL+C চাপানো হয়।
8080 পোর্টে ওয়েব সার্ভার শুরু করতে নিম্নলিখিত কমান্ডটি চালান।
$ python3 -m http।সার্ভার 8080
8080 পোর্টে ওয়েব সার্ভার চালু হলে নিচের আউটপুট দেখা যাবে।
পাইথন স্ক্রিপ্ট ব্যবহার করে ওয়েব সার্ভার চালান
নামের একটি ফোল্ডার তৈরি করতে নিম্নলিখিত কমান্ডগুলি চালান ওয়েব এবং ফোল্ডারে যান। এই টিউটোরিয়ালের সমস্ত স্ক্রিপ্ট ফাইল এবং HTML ফাইল এই ফোল্ডারের ভিতরে তৈরি করা হবে।
$ mkdir ওয়েব$সিডিওয়েব
নামে একটি HTML ফাইল তৈরি করুন testHTML.html ভিতরে ওয়েব নিম্নলিখিত স্ক্রিপ্ট সহ ফোল্ডার। এই ফাইলটি পরে ওয়েব সার্ভার থেকে পরিবেশন করা হবে।
testHTML.html
< html >< মাথা >
< শিরোনাম >
পাইথন ওয়েব সার্ভার পরীক্ষা করুন
</ শিরোনাম >
</ মাথা >
< শরীর >
< কেন্দ্র >
< img src='logo.jpeg' সবকিছু='ছবিটি খুঁজে পাওয়া যায়নি'/>
< h2 শৈলী='রঙ: সবুজ'>অভিনন্দন! আপনার ওয়েব সার্ভার সফলভাবে চলছে।</ h2 >
< পৃ >পরিদর্শন< প্রতি href='www.linuxhint.com'>LinuxHint.com</ প্রতি >পাইথনে আরো টিউটোরিয়ালের জন্য</ পৃ >
</ কেন্দ্র >
</ শরীর >
</ html >
উদাহরণ -1: নির্দিষ্ট পোর্ট নম্বরে ওয়েব সার্ভার চালান
8008 পোর্টে ওয়েব সার্ভার চালানোর জন্য নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন। http. সার্ভার ওয়েব সার্ভার চালানোর জন্য মডিউল আমদানি করা হয়েছে, এবং সকেট সার্ভার 8080 পোর্ট থেকে আসা HTTP রিকোয়েস্ট পরিচালনা করতে মডিউল আমদানি করা হয়েছে। নামের একটি বস্তু হ্যান্ডলার HTTP অনুরোধগুলি পরিচালনা করার জন্য তৈরি করা হয়েছে। চিরতরে() ওয়েব সার্ভার চালানোর জন্য ফাংশন বলা হয়। স্ক্রিপ্টে কোন টার্মিনেশন শর্ত যোগ করা হয়নি। সুতরাং, ব্যবহারকারী সার্ভার বন্ধ করার চেষ্টা করলে স্ক্রিপ্ট একটি ত্রুটি তৈরি করবে।
# আমদানি সার্ভার মডিউলআমদানিhttp।সার্ভার
# আমদানি সকেট সার্ভার মডিউল
আমদানিসকেট সার্ভার
# পোর্ট নম্বর সেট করুন
বন্দর= 8080
# HTTP রিকোয়েস্ট পরিচালনার জন্য অবজেক্ট তৈরি করুন
হ্যান্ডলার=http।সার্ভার।SimpleHTTPRequestHandler
# HTTP রিকোয়েস্ট পরিচালনা করার জন্য সার্ভারটি চিরতরে চালান
সঙ্গেসকেট সার্ভারটিসিপি সার্ভার(('',বন্দর),হ্যান্ডলার) হিসাবেhttpd:
ছাপা('ওয়েব সার্ভার http: // localhost:%s এ চলছে%পোর্ট)
httpdserve_forever()
আউটপুট
উপরের স্ক্রিপ্টটি কার্যকর করার পরে নিম্নলিখিত আউটপুটটি উপস্থিত হবে।
ব্রাউজার থেকে নিচের ইউআরএল এক্সিকিউট করা হলে স্ক্রিপ্ট লোকেশনের ফাইল এবং ফোল্ডারের তালিকা দেখানো হবে।
যদি ব্যবহারকারী টার্মিনাল থেকে CTRL+C টিপেন বা PyCharm এডিটর থেকে স্টপ বাটন চাপেন, তাহলে নিচের ত্রুটি বার্তাটি প্রদর্শিত হবে। এই টিউটোরিয়ালের পরবর্তী উদাহরণে এই সমস্যার সমাধান হয়েছে।
উদাহরণ -২: কমান্ড-লাইন দ্বারা নির্ধারিত পোর্ট নম্বর দিয়ে ওয়েব সার্ভার চালান
কমান্ড-লাইন আর্গুমেন্ট পোর্ট নম্বর দিলে নির্দিষ্ট পোর্টে ওয়েব সার্ভার চালানোর জন্য নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন; অন্যথায়, 5000 ডিফল্ট পোর্ট হিসাবে ব্যবহার করা হবে। sys কমান্ড-লাইন আর্গুমেন্ট মান পড়ার জন্য স্ক্রিপ্টে মডিউল আমদানি করা হয়েছে। চেষ্টা ছাড়া ব্যবহারকারী সার্ভার বন্ধ করার চেষ্টা করলে ত্রুটি সামলানোর জন্য স্ক্রিপ্টে ব্লক যুক্ত করা হয়েছে। সার্ভার চালানোর পর যদি KeyboardInterrupt ব্যতিক্রম দেখা দেয়, তাহলে বন্ধ () ওয়েব সার্ভার বন্ধ করার জন্য ফাংশন বলা হবে।
# আমদানি সার্ভার মডিউলআমদানিhttp।সার্ভার
# আমদানি সকেট সার্ভার মডিউল
আমদানিসকেট সার্ভার
# Sys মডিউল আমদানি করুন
আমদানি sys
চেষ্টা করুন:
# পোর্ট নম্বর সেট করুন
যদি sys।argv[ঘ:]:
বন্দর= int(sys।argv[ঘ])
অন্য:
বন্দর= 5000
# আইপি ঠিকানা সেট করুন
সার্ভার ঠিকানা= ('127.0.0.1',বন্দর)
# HTTP রিকোয়েস্ট পরিচালনার জন্য অবজেক্ট তৈরি করুন
হ্যান্ডলার=http।সার্ভার।SimpleHTTPRequestHandler
# HTTP অনুরোধগুলি পরিচালনা করতে ওয়েব সার্ভারটি চিরতরে চালান
সঙ্গেসকেট সার্ভারটিসিপি সার্ভার(('',বন্দর),হ্যান্ডলার) হিসাবেhttpd:
ছাপা('ওয়েব সার্ভার http: // localhost:%s এ চলছে%পোর্ট)
httpdserve_forever()
# সার্ভার বন্ধ
ছাড়া কীবোর্ড:
httpdসার্ভার_ক্লোজ()
ছাপা('সার্ভার বন্ধ।')
আউটপুট
কমান্ড-লাইন আর্গুমেন্ট মান ছাড়াই উপরের স্ক্রিপ্টটি চালানোর পর নিম্নলিখিত আউটপুটটি উপস্থিত হবে।
ওয়েব সার্ভার থেকে আগের ধাপে তৈরি HTML ফাইলটি চালালে নিচের আউটপুটটি দেখা যাবে।
কমান্ড-লাইন আর্গুমেন্ট মান সেট করতে PyCharm এডিটরের রান মেনু থেকে কনফিগারেশন ডায়ালগ বক্স খুলুন। কমান্ড-লাইন আর্গুমেন্ট সেট করতে প্যারামিটার ফিল্ড ব্যবহার করা হয় এবং আর্গুমেন্ট মান হিসেবে এখানে 3000 সেট করা হয়।
আপনি আর্গুমেন্ট মান সেট করার পরে আবার স্ক্রিপ্টটি চালালে নিচের আউটপুটটি উপস্থিত হবে।
উদাহরণ-3: HTML ফাইল দিয়ে ওয়েব সার্ভার চালান
বেস ইউআরএলের জন্য এইচটিএমএল ফাইল সংজ্ঞায়িত করে ওয়েব সার্ভার চালানোর জন্য নিম্নলিখিত স্ক্রিপ্ট সহ একটি পাইথন ফাইল তৈরি করুন। হোস্টনাম এবং পোর্ট নম্বর স্ক্রিপ্টের শুরুতে সংজ্ঞায়িত করা হয়েছে। পাইথন সার্ভার ওয়েব সার্ভার চলতে শুরু করলে ব্রাউজারে HTML ফাইল প্রদর্শন করার জন্য স্ক্রিপ্টে ক্লাস সংজ্ঞায়িত করা হয়েছে।
# সার্ভার মডিউল আমদানি করুনআমদানিhttp।সার্ভার
# হোস্টনাম সেট করুন
HOST= 'লোকাল হোস্ট'
# পোর্ট নম্বর সেট করুন
বন্দর= 4000
# ওয়েব সার্ভারের ইনডেক্স পৃষ্ঠা প্রদর্শন করতে শ্রেণী নির্ধারণ করুন
শ্রেণীপাইথন সার্ভার(http।সার্ভার।SimpleHTTPRequestHandler):
ডিফসম্পন্ন করা(স্ব):
যদি স্ব।পথ == '/':
স্ব।পথ = 'testHTML.html'
প্রত্যাবর্তনhttp।সার্ভার।SimpleHTTPRequestHandler।সম্পন্ন করা(স্ব)
# ক্লাসের বস্তু ঘোষণা করুন
ওয়েব সার্ভার=http।সার্ভার।HTTPS সার্ভার((HOST,বন্দর),পাইথন সার্ভার)
# ওয়েব সার্ভারের ইউআরএল প্রিন্ট করুন
ছাপা('সার্ভার শুরু হয়েছে http: //%s:%s'%(HOST,বন্দর))
চেষ্টা করুন:
# ওয়েব সার্ভার চালান
ওয়েব সার্ভার.serve_forever()
ছাড়া কীবোর্ড:
# ওয়েব সার্ভার বন্ধ করুন
ওয়েব সার্ভার.সার্ভার_ক্লোজ()
ছাপা('সার্ভার বন্ধ।')
আউটপুট
নিচের আউটপুট উপরের স্ক্রিপ্টটি এক্সিকিউট করবে।
ব্রাউজারে ওয়েব সার্ভারের বেস ইউআরএল এক্সিকিউট হলে নিচের পৃষ্ঠাটি ব্রাউজারে উপস্থিত হবে।
উপসংহার
ব্যবহার করে ওয়েব সার্ভার বাস্তবায়নের বিভিন্ন উপায় http। সার্ভার পাইথন ব্যবহারকারীদের পাইথনে একটি সহজ ওয়েব সার্ভার তৈরি করতে সাহায্য করার জন্য মডিউলটি এই টিউটোরিয়ালে দেখানো হয়েছে।