সরল ইংরেজিতে ডাব্লুএসজিআই এবং সিজিআই কী কী?


126

প্রতিবার আমি ডাব্লুএসজিআই বা সিজিআই পড়ি আমি ক্রিঞ্জ করি। আমি আগে এটি পড়ার চেষ্টা করেছি কিন্তু কিছুই সত্যই আটকে যায়নি।

এটি সরল ইংরেজিতে আসলে কী?

এটি কি কেবল পাইপগুলি টার্মিনালে অনুরোধ করে এবং আউটপুটটিকে পুনর্নির্দেশ করে?


উত্তর:


60

ডাব্লুএসজিআই ওয়েব সার্ভার শুরুর সময় পাইথন ইন্টারপ্রেটার চালায়, হয় ওয়েব সার্ভার প্রক্রিয়ার অংশ হিসাবে (এম্বেডড মোড) অথবা একটি পৃথক প্রক্রিয়া (ডেমন মোড) হিসাবে, এবং এতে স্ক্রিপ্ট লোড করে। প্রতিটি অনুরোধের ফলে স্ক্রিপ্টের একটি নির্দিষ্ট ফাংশন ডেকে আনা হয়, অনুরোধের পরিবেশটি কার্যটির পক্ষে যুক্তি হিসাবে পাস হয় passed

প্রতিটি অনুরোধে সিজিআই পৃথক প্রক্রিয়া হিসাবে স্ক্রিপ্টটি চালায় এবং এর সাথে "যোগাযোগ" করতে পরিবেশের ভেরিয়েবল, স্টিডিন এবং স্টডআউট ব্যবহার করে।


15
ডাব্লুএসজিআই! = মোড_উজি আপনার ভাষাটি আপনাকে মোড_উজি বলতে বোঝায় যা ডাব্লুএসজিআই বাস্তবায়ন। ডাব্লুএসজিআই নিজেই নিছক একটি স্পেসিফিকেশন এবং সিজিআই শীর্ষ সহ অনেকগুলি বিভিন্ন উপায়ে প্রয়োগ করা যেতে পারে।
গ্রাহাম ডাম্পলটন

@ গ্রাহাম: আপনি কি বলছেন যে অন্য কোনও ডাব্লুএসজিআই পাত্রে নেই যা সেই মোডগুলিতে ডাব্লুএসজিআই অ্যাপ্লিকেশনগুলি সমর্থন করে?
ইগনাসিও ওয়াজকেজ-আব্রামস

3
প্রযুক্তিগতভাবে কেউ বলতে পারেন যে কেবলমাত্র এই দুটিয়ের চেয়ে আরও সূক্ষ্ম প্রকরণ রয়েছে, কমপক্ষে প্রক্রিয়াগুলি কীভাবে শুরু হয় বা এম্বেড থাকা সিস্টেমের মধ্যে কীভাবে কোড সক্রিয় হয় তার মধ্যে অনেকটা। সুতরাং একজনকে কেবল সেই দুটি বিভাগে জিনিসকে সাধারণীকরণের ক্ষেত্রে সাবধানতা অবলম্বন করতে হবে। সামগ্রিক স্তরে আপনি যা বলতে পারেন তা হয়ত বলতে পারেন, তবে আপনি যদি এটির মধ্যে আবিষ্কার করতে চান তবে তার থেকে কিছুটা বেশি আছে।
গ্রাহাম ডাম্পলটন

1
@ গ্রাহামডাম্পলটন, কৌতূহলের বাইরে, কীভাবে সিজিআইয়ের শীর্ষে ডাব্লুএসজিআই বাস্তবায়ন করা যায় তা বোঝাতে আপনার কি মনে হবে?
ইয়োল্যান্ড

2
ডাব্লুএসজিআই স্পেসিফিকেশন পড়ুন। এটি সিজিআই / ডাব্লুএসজিআই ব্রিজের একটি উদাহরণ দেখায়। python.org/dev/peps/pep-3333/#the-server-gateway-side আরও শক্তিশালী প্রয়োগের জন্য github.com/GrahamDumpleton/cgi2wsgi দেখুন গুরুতরভাবে, সাধারণভাবে আপনি সিজিআই এড়াতে চান।
গ্রাহাম ডাম্পলটন

255

সম্পূর্ণ পদক্ষেপের দৃষ্টিকোণ থেকে, ব্ল্যাঙ্কম্যান, ওয়েব সার্ভিসেস গেটওয়ে ইন্টারফেসের জন্য আমার "ইন্ট্রো পৃষ্ঠা":

প্রথম অংশ: ওয়েব সার্ভারস

ওয়েব সার্ভারগুলি প্রতিক্রিয়া জানায়। তারা চারপাশে বসে ধৈর্য ধরে অপেক্ষা করে এবং তারপরে কোনও হুঁশিয়ারি ছাড়াই হঠাৎ করে:

  • একটি ক্লায়েন্ট প্রক্রিয়া একটি অনুরোধ প্রেরণ করে। ক্লায়েন্ট প্রক্রিয়া একটি ওয়েব সার্ভার, বট, একটি মোবাইল অ্যাপ্লিকেশন, যা কিছু হতে পারে। এটি কেবল "ক্লায়েন্ট"
  • ওয়েব সার্ভারটি এই অনুরোধটি গ্রহণ করে
  • ইচ্ছাকৃত বিড়বিড় করে বিভিন্ন জিনিস ঘটে (নীচে দেখুন)
  • ওয়েব সার্ভার ক্লায়েন্টকে কিছু ফেরত পাঠায়
  • ওয়েব সার্ভার আবার বসে

ওয়েব সার্ভারগুলি (কমপক্ষে, আরও ভালগুলি) এটিতে খুব ভাল। তারা চাহিদার উপর নির্ভর করে প্রসেসিং আপ এবং ডাউন করে, তারা নির্ভরযোগ্যভাবে সত্যিকারের ক্রুডি নেটওয়ার্কগুলির মধ্যে সবচেয়ে বেশি ক্লায়েন্টদের সাথে কথোপকথন রাখে এবং আমাদের সত্যই কখনই এটি নিয়ে চিন্তা করতে হবে না। তারা শুধু পরিবেশন করা চালিয়ে যান।

এটি আমার বক্তব্য: ওয়েব সার্ভারগুলি হ'ল সার্ভারগুলি। তারা বিষয়বস্তু সম্পর্কে কিছুই জানেন না, ব্যবহারকারীদের সম্পর্কে কিছুই জানেন না, কীভাবে অনেক অপেক্ষা করতে হবে এবং নির্ভরযোগ্যভাবে প্রতিক্রিয়া জানানো ছাড়া অন্য কিছুই নয়।

ওয়েব সার্ভারের আপনার পছন্দটি আপনার সফ্টওয়্যার নয়, আপনার বিতরণ পছন্দকে প্রতিফলিত করবে। আপনার ওয়েব সার্ভারটি প্রসেসিং বা লজিকাল স্টাফের নয়, পরিবেশনের দায়িত্বে থাকা উচিত।

পার্ট দুই: (পাইথন) সফটওয়্যার

সফটওয়্যার চারপাশে বসে না। সফ্টওয়্যারটি শুধুমাত্র কার্যকর করার সময় উপস্থিত থাকে। সফ্টওয়্যারটি যখন তার পরিবেশে অপ্রত্যাশিত পরিবর্তন আসে (ফাইলগুলি যেখানে এটি প্রত্যাশিত হয় না, প্যারামিটারগুলির নতুন নামকরণ করা হয় ইত্যাদি) আসে তখন ভয়ঙ্করভাবে সামঞ্জস্য হয় না। যদিও অপ্টিমাইজেশনটি আপনার নকশার (অবশ্যই) কেন্দ্রীয় তত্ত্ব হওয়া উচিত, তবে সফ্টওয়্যার নিজেই অপ্টিমাইজ করে না। বিকাশকারীরা অনুকূলিত হন। সফ্টওয়্যার কার্যকর করে। সফ্টওয়্যার উপরের 'ইচ্ছাকৃত বিড়বিড়' বিভাগে সমস্ত স্টাফ করে। কিছু হতে পারে।

আপনার পছন্দ বা সফ্টওয়্যার ডিজাইন আপনার অ্যাপ্লিকেশন, আপনার কার্যকারিতা পছন্দ এবং ওয়েব সার্ভার আপনার পছন্দ নয় প্রতিফলিত করা উচিত।

ওয়েব সার্ভারগুলিতে "সংকলন" ভাষাগুলির প্রচলিত পদ্ধতিটি এখানেই বেদনাদায়ক হয়ে ওঠে। আপনি শারীরিক সার্ভার পরিবেশের সাথে লড়াই করার জন্য আপনার অ্যাপ্লিকেশনটিতে কোড লাগিয়েছেন বা ওয়েব সার্ভারগুলিতে অভিন্নতার মায়া দেওয়ার জন্য রানটাইমের সময় অন্তর্ভুক্ত করার জন্য উপযুক্ত 'মোড়ক' লাইব্রেরি বেছে নিতে বাধ্য হচ্ছেন।

সুতরাং ডাব্লুএসজিআই কি?

সুতরাং, শেষ পর্যন্ত, ডাব্লুএসজিআই কি? ডাব্লুএসজিআই নিয়মের একটি সেট, দুটি অংশে লেখা। এগুলি এমনভাবে লেখা যাতে তারা যে কোনও পরিবেশে সংহত হতে পারে যা সংহতিকে স্বাগত জানায়।

প্রথম অংশটি ওয়েব সার্ভারের পক্ষে লেখা, "ঠিক আছে, আপনি যদি ডাব্লুএসজিআই অ্যাপ্লিকেশনটি ব্যবহার করতে চান তবে সফ্টওয়্যারটি লোড হওয়ার সাথে সাথে কীভাবে চিন্তা করা হবে তা এখানে রয়েছে application অ্যাপ্লিকেশনটিতে আপনাকে অবশ্যই প্রয়োজনীয় জিনিসগুলি এখানে সরবরাহ করতে হবে এবং এখানে হ'ল ইন্টারফেস (বিন্যাস) যা আপনি প্রতিটি অ্যাপ্লিকেশনটির প্রত্যাশা করতে পারেন Moreover এছাড়াও, যদি কোনও কিছু ভুল হয়ে যায় তবে অ্যাপটি কীভাবে ভাববে এবং আপনি কীভাবে এটি আচরণ করবেন বলে আশা করতে পারেন ""

পাইথন অ্যাপ্লিকেশন সফ্টওয়্যারটির জন্য লেখা দ্বিতীয় অংশটি বলে, "ঠিক আছে, আপনি যদি কোনও ডাব্লুএসজিআই সার্ভারের সাথে ডিল করতে চান তবে সার্ভারটি যখন আপনার সাথে যোগাযোগ করবে তখন কীভাবে চিন্তা করবে তা এখানে রয়েছে the সার্ভারের জন্য আপনাকে অবশ্যই প্রয়োজনীয় জিনিসগুলি এখানে সরবরাহ করতে হবে, এবং এটি হ'ল ইন্টারফেস (বিন্যাস) যা আপনি প্রতিটি সার্ভারের আশা করতে পারেন Moreover তাছাড়া, কিছু ভুল হয়ে গেলে আপনার আচরণ কীভাবে করা উচিত তাও এখানে এবং সার্ভারকে আপনার কী বলা উচিত তা এখানে ""

সুতরাং সেখানে আপনার এটি রয়েছে - সার্ভারগুলি হ'ল সার্ভার এবং সফ্টওয়্যারটি সফ্টওয়্যার হবে এবং এখানে একটি উপায় যা তারা অন্যটির নির্দিষ্টকরণের জন্য কোনও ভাতা না দিয়ে কেবল দুর্দান্ত পথে যেতে পারে। এটি ডাব্লুএসজিআই।

অন্যদিকে মোড_উসগি অ্যাপাচি-র জন্য একটি প্লাগইন যা এটি ডাব্লুএসজিআই-কমপ্লায়েন্ট সফ্টওয়্যার এর সাথে কথা বলতে দেয়, অন্য কথায়, মোড_উজি উপরোক্ত রুলবুকের এক অংশের নিয়মগুলির - অ্যাপাচে - একটি বাস্তবায়ন

সিজিআই হিসাবে .... অন্য কাউকে জিজ্ঞাসা করুন :-)


21
এই উত্তরটি "অন্য কাউকে জিজ্ঞাসা করুন" দিয়ে শেষ হওয়ার পরিবর্তে, আমি আশা করি যে কেউ এই উত্তরটি একই পদ্ধতিতে সিজিআই অন্তর্ভুক্ত করার জন্য সম্পাদনা করবে।
ব্রুনো ব্রোনোস্কি

1
'সার্ভারগুলি সার্ভার হবে এবং সফ্টওয়্যারটি সফটওয়্যার হবে' - 'সার্ভারগুলি মঙ্গল থেকে এবং সফ্টওয়্যারটি শুক্র থেকে হয়' :)
রাহুল

22

আপনি যদি এই স্থানের সমস্ত শর্তাদি সম্পর্কে অস্পষ্ট হন এবং আসুন এটির মুখোমুখি হন, এটি একটি বিভ্রান্তিকর সংক্ষিপ্ত বিবরণযুক্ত, এটি একটি সরকারী পাইথন হাওটো আকারে একটি ভাল ব্যাকগ্রাউন্ড রিডার রয়েছে যা সিজিআই বনাম ফাস্টসিজিআই বনাম ডাব্লুএসজিআই এবং তাই আলোচনা করে চালু. আমি আশা করি আমি আগে এটি পড়েছি।


21

সিজিআই এবং ডাব্লুএসজিআই উভয়ই স্ট্যান্ডার্ড ইন্টারফেসগুলি সংজ্ঞায়িত করে যা প্রোগ্রামগুলি ওয়েব অনুরোধগুলি পরিচালনা করতে ব্যবহার করতে পারে। সিজিআই ইন্টারফেসটি ডাব্লুএসজিআইয়ের তুলনায় নিম্ন স্তরে রয়েছে এবং এতে সার্ভারটি এইচটিটিপি অনুরোধ থেকে ডেটা যুক্ত পরিবেশের ভেরিয়েবলগুলি সেট আপ করা জড়িত রয়েছে, প্রোগ্রামটি কিছু খালি এইচটিটিপি সার্ভারের প্রতিক্রিয়ার মতো কিছু ফর্ম্যাটেড ফিরিয়ে দেয়।

অন্যদিকে ডাব্লুএসজিআই হল একটি পাইথন-নির্দিষ্ট, কিছুটা উচ্চ-স্তরের ইন্টারফেস যা প্রোগ্রামারগুলিকে এমন অ্যাপ্লিকেশন লিখতে দেয় যা সার্ভার-অজোনস্টিক এবং যা অন্যান্য ডাব্লুএসজিআই অ্যাপ্লিকেশনগুলিতে (মিডলওয়্যার) মোড়ানো যায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.