উত্তর:
ডাব্লুএসজিআই ওয়েব সার্ভার শুরুর সময় পাইথন ইন্টারপ্রেটার চালায়, হয় ওয়েব সার্ভার প্রক্রিয়ার অংশ হিসাবে (এম্বেডড মোড) অথবা একটি পৃথক প্রক্রিয়া (ডেমন মোড) হিসাবে, এবং এতে স্ক্রিপ্ট লোড করে। প্রতিটি অনুরোধের ফলে স্ক্রিপ্টের একটি নির্দিষ্ট ফাংশন ডেকে আনা হয়, অনুরোধের পরিবেশটি কার্যটির পক্ষে যুক্তি হিসাবে পাস হয় passed
প্রতিটি অনুরোধে সিজিআই পৃথক প্রক্রিয়া হিসাবে স্ক্রিপ্টটি চালায় এবং এর সাথে "যোগাযোগ" করতে পরিবেশের ভেরিয়েবল, স্টিডিন এবং স্টডআউট ব্যবহার করে।
সম্পূর্ণ পদক্ষেপের দৃষ্টিকোণ থেকে, ব্ল্যাঙ্কম্যান, ওয়েব সার্ভিসেস গেটওয়ে ইন্টারফেসের জন্য আমার "ইন্ট্রো পৃষ্ঠা":
প্রথম অংশ: ওয়েব সার্ভারস
ওয়েব সার্ভারগুলি প্রতিক্রিয়া জানায়। তারা চারপাশে বসে ধৈর্য ধরে অপেক্ষা করে এবং তারপরে কোনও হুঁশিয়ারি ছাড়াই হঠাৎ করে:
ওয়েব সার্ভারগুলি (কমপক্ষে, আরও ভালগুলি) এটিতে খুব ভাল। তারা চাহিদার উপর নির্ভর করে প্রসেসিং আপ এবং ডাউন করে, তারা নির্ভরযোগ্যভাবে সত্যিকারের ক্রুডি নেটওয়ার্কগুলির মধ্যে সবচেয়ে বেশি ক্লায়েন্টদের সাথে কথোপকথন রাখে এবং আমাদের সত্যই কখনই এটি নিয়ে চিন্তা করতে হবে না। তারা শুধু পরিবেশন করা চালিয়ে যান।
এটি আমার বক্তব্য: ওয়েব সার্ভারগুলি হ'ল সার্ভারগুলি। তারা বিষয়বস্তু সম্পর্কে কিছুই জানেন না, ব্যবহারকারীদের সম্পর্কে কিছুই জানেন না, কীভাবে অনেক অপেক্ষা করতে হবে এবং নির্ভরযোগ্যভাবে প্রতিক্রিয়া জানানো ছাড়া অন্য কিছুই নয়।
ওয়েব সার্ভারের আপনার পছন্দটি আপনার সফ্টওয়্যার নয়, আপনার বিতরণ পছন্দকে প্রতিফলিত করবে। আপনার ওয়েব সার্ভারটি প্রসেসিং বা লজিকাল স্টাফের নয়, পরিবেশনের দায়িত্বে থাকা উচিত।
পার্ট দুই: (পাইথন) সফটওয়্যার
সফটওয়্যার চারপাশে বসে না। সফ্টওয়্যারটি শুধুমাত্র কার্যকর করার সময় উপস্থিত থাকে। সফ্টওয়্যারটি যখন তার পরিবেশে অপ্রত্যাশিত পরিবর্তন আসে (ফাইলগুলি যেখানে এটি প্রত্যাশিত হয় না, প্যারামিটারগুলির নতুন নামকরণ করা হয় ইত্যাদি) আসে তখন ভয়ঙ্করভাবে সামঞ্জস্য হয় না। যদিও অপ্টিমাইজেশনটি আপনার নকশার (অবশ্যই) কেন্দ্রীয় তত্ত্ব হওয়া উচিত, তবে সফ্টওয়্যার নিজেই অপ্টিমাইজ করে না। বিকাশকারীরা অনুকূলিত হন। সফ্টওয়্যার কার্যকর করে। সফ্টওয়্যার উপরের 'ইচ্ছাকৃত বিড়বিড়' বিভাগে সমস্ত স্টাফ করে। কিছু হতে পারে।
আপনার পছন্দ বা সফ্টওয়্যার ডিজাইন আপনার অ্যাপ্লিকেশন, আপনার কার্যকারিতা পছন্দ এবং ওয়েব সার্ভার আপনার পছন্দ নয় প্রতিফলিত করা উচিত।
ওয়েব সার্ভারগুলিতে "সংকলন" ভাষাগুলির প্রচলিত পদ্ধতিটি এখানেই বেদনাদায়ক হয়ে ওঠে। আপনি শারীরিক সার্ভার পরিবেশের সাথে লড়াই করার জন্য আপনার অ্যাপ্লিকেশনটিতে কোড লাগিয়েছেন বা ওয়েব সার্ভারগুলিতে অভিন্নতার মায়া দেওয়ার জন্য রানটাইমের সময় অন্তর্ভুক্ত করার জন্য উপযুক্ত 'মোড়ক' লাইব্রেরি বেছে নিতে বাধ্য হচ্ছেন।
সুতরাং ডাব্লুএসজিআই কি?
সুতরাং, শেষ পর্যন্ত, ডাব্লুএসজিআই কি? ডাব্লুএসজিআই নিয়মের একটি সেট, দুটি অংশে লেখা। এগুলি এমনভাবে লেখা যাতে তারা যে কোনও পরিবেশে সংহত হতে পারে যা সংহতিকে স্বাগত জানায়।
প্রথম অংশটি ওয়েব সার্ভারের পক্ষে লেখা, "ঠিক আছে, আপনি যদি ডাব্লুএসজিআই অ্যাপ্লিকেশনটি ব্যবহার করতে চান তবে সফ্টওয়্যারটি লোড হওয়ার সাথে সাথে কীভাবে চিন্তা করা হবে তা এখানে রয়েছে application অ্যাপ্লিকেশনটিতে আপনাকে অবশ্যই প্রয়োজনীয় জিনিসগুলি এখানে সরবরাহ করতে হবে এবং এখানে হ'ল ইন্টারফেস (বিন্যাস) যা আপনি প্রতিটি অ্যাপ্লিকেশনটির প্রত্যাশা করতে পারেন Moreover এছাড়াও, যদি কোনও কিছু ভুল হয়ে যায় তবে অ্যাপটি কীভাবে ভাববে এবং আপনি কীভাবে এটি আচরণ করবেন বলে আশা করতে পারেন ""
পাইথন অ্যাপ্লিকেশন সফ্টওয়্যারটির জন্য লেখা দ্বিতীয় অংশটি বলে, "ঠিক আছে, আপনি যদি কোনও ডাব্লুএসজিআই সার্ভারের সাথে ডিল করতে চান তবে সার্ভারটি যখন আপনার সাথে যোগাযোগ করবে তখন কীভাবে চিন্তা করবে তা এখানে রয়েছে the সার্ভারের জন্য আপনাকে অবশ্যই প্রয়োজনীয় জিনিসগুলি এখানে সরবরাহ করতে হবে, এবং এটি হ'ল ইন্টারফেস (বিন্যাস) যা আপনি প্রতিটি সার্ভারের আশা করতে পারেন Moreover তাছাড়া, কিছু ভুল হয়ে গেলে আপনার আচরণ কীভাবে করা উচিত তাও এখানে এবং সার্ভারকে আপনার কী বলা উচিত তা এখানে ""
সুতরাং সেখানে আপনার এটি রয়েছে - সার্ভারগুলি হ'ল সার্ভার এবং সফ্টওয়্যারটি সফ্টওয়্যার হবে এবং এখানে একটি উপায় যা তারা অন্যটির নির্দিষ্টকরণের জন্য কোনও ভাতা না দিয়ে কেবল দুর্দান্ত পথে যেতে পারে। এটি ডাব্লুএসজিআই।
অন্যদিকে মোড_উসগি অ্যাপাচি-র জন্য একটি প্লাগইন যা এটি ডাব্লুএসজিআই-কমপ্লায়েন্ট সফ্টওয়্যার এর সাথে কথা বলতে দেয়, অন্য কথায়, মোড_উজি উপরোক্ত রুলবুকের এক অংশের নিয়মগুলির - অ্যাপাচে - একটি বাস্তবায়ন ।
সিজিআই হিসাবে .... অন্য কাউকে জিজ্ঞাসা করুন :-)
আপনি যদি এই স্থানের সমস্ত শর্তাদি সম্পর্কে অস্পষ্ট হন এবং আসুন এটির মুখোমুখি হন, এটি একটি বিভ্রান্তিকর সংক্ষিপ্ত বিবরণযুক্ত, এটি একটি সরকারী পাইথন হাওটো আকারে একটি ভাল ব্যাকগ্রাউন্ড রিডার রয়েছে যা সিজিআই বনাম ফাস্টসিজিআই বনাম ডাব্লুএসজিআই এবং তাই আলোচনা করে চালু. আমি আশা করি আমি আগে এটি পড়েছি।
সিজিআই এবং ডাব্লুএসজিআই উভয়ই স্ট্যান্ডার্ড ইন্টারফেসগুলি সংজ্ঞায়িত করে যা প্রোগ্রামগুলি ওয়েব অনুরোধগুলি পরিচালনা করতে ব্যবহার করতে পারে। সিজিআই ইন্টারফেসটি ডাব্লুএসজিআইয়ের তুলনায় নিম্ন স্তরে রয়েছে এবং এতে সার্ভারটি এইচটিটিপি অনুরোধ থেকে ডেটা যুক্ত পরিবেশের ভেরিয়েবলগুলি সেট আপ করা জড়িত রয়েছে, প্রোগ্রামটি কিছু খালি এইচটিটিপি সার্ভারের প্রতিক্রিয়ার মতো কিছু ফর্ম্যাটেড ফিরিয়ে দেয়।
অন্যদিকে ডাব্লুএসজিআই হল একটি পাইথন-নির্দিষ্ট, কিছুটা উচ্চ-স্তরের ইন্টারফেস যা প্রোগ্রামারগুলিকে এমন অ্যাপ্লিকেশন লিখতে দেয় যা সার্ভার-অজোনস্টিক এবং যা অন্যান্য ডাব্লুএসজিআই অ্যাপ্লিকেশনগুলিতে (মিডলওয়্যার) মোড়ানো যায়।