- কমন গেটওয়ে ইন্টারফেস, বা CGI, HTTP সার্ভারের মতো তথ্য সার্ভারগুলির সাথে ইন্টারফেস করার জন্য বহিরাগত গেটওয়ে প্রোগ্রামগুলির জন্য একটি মানক৷
- বর্তমান সংস্করণ হল CGI/1.1 এবং CGI/1.2 চলছে।
ওয়েব ব্রাউজিং
CGI-এর ধারণা বোঝার জন্য, আসুন দেখা যাক যখন আমরা একটি নির্দিষ্ট ওয়েব পৃষ্ঠা বা URL ব্রাউজ করার জন্য একটি হাইপার লিঙ্কে ক্লিক করি তখন কী হয়৷
- আপনার ব্রাউজার HTTP ওয়েব সার্ভারের সাথে যোগাযোগ করে এবং URL এর জন্য দাবি করে, যেমন, ফাইলের নাম।
- ওয়েব সার্ভার ইউআরএল পার্স করে এবং ফাইলের নাম খোঁজে। যদি এটি সেই ফাইলটি খুঁজে পায় তবে এটি ব্রাউজারে ফেরত পাঠায়, অন্যথায় একটি ত্রুটি বার্তা পাঠায় যা নির্দেশ করে যে আপনি একটি ভুল ফাইলের অনুরোধ করেছেন৷
- ওয়েব ব্রাউজার ওয়েব সার্ভার থেকে প্রতিক্রিয়া নেয় এবং প্রাপ্ত ফাইল বা ত্রুটি বার্তা প্রদর্শন করে।
যাইহোক, HTTP সার্ভার সেট আপ করা সম্ভব যাতে যখনই একটি নির্দিষ্ট ডিরেক্টরির একটি ফাইলের অনুরোধ করা হয় তখনই সেই ফাইলটি ফেরত পাঠানো না হয়; পরিবর্তে এটি একটি প্রোগ্রাম হিসাবে কার্যকর করা হয়, এবং যাই হোক না কেন সেই প্রোগ্রাম আউটপুট আপনার ব্রাউজার প্রদর্শনের জন্য ফেরত পাঠানো হয়। এই ফাংশনটিকে কমন গেটওয়ে ইন্টারফেস বা সিজিআই বলা হয় এবং প্রোগ্রামগুলিকে সিজিআই স্ক্রিপ্ট বলা হয়। এই CGI প্রোগ্রামগুলি পাইথন স্ক্রিপ্ট, PERL স্ক্রিপ্ট, শেল স্ক্রিপ্ট, C বা C++ প্রোগ্রাম ইত্যাদি হতে পারে।
CGI আর্কিটেকচার ডায়াগ্রাম
ওয়েব সার্ভার সমর্থন এবং কনফিগারেশন
আপনি CGI প্রোগ্রামিং এর সাথে এগিয়ে যাওয়ার আগে, নিশ্চিত করুন যে আপনার ওয়েব সার্ভার CGI সমর্থন করে এবং এটি CGI প্রোগ্রামগুলি পরিচালনা করার জন্য কনফিগার করা আছে। HTTP সার্ভার দ্বারা নির্বাহ করা সমস্ত CGI প্রোগ্রাম একটি পূর্ব-কনফিগার করা ডিরেক্টরিতে রাখা হয়। এই ডিরেক্টরিটিকে CGI ডিরেক্টরি বলা হয় এবং নিয়ম অনুসারে এটিকে /var/www/cgi-bin নামে নামকরণ করা হয়। নিয়ম অনুসারে, CGI ফাইলগুলির এক্সটেনশন রয়েছে। cgi, কিন্তু আপনি পাইথন এক্সটেনশন .py এর সাথেও আপনার ফাইল রাখতে পারেন।
ডিফল্টরূপে, /var/www-এ cgi-bin ডিরেক্টরিতে শুধুমাত্র স্ক্রিপ্ট চালানোর জন্য Linux সার্ভার কনফিগার করা হয়। আপনি যদি আপনার CGI স্ক্রিপ্ট চালানোর জন্য অন্য কোনো ডিরেক্টরি উল্লেখ করতে চান, তাহলে httpd.conf ফাইলে নিম্নলিখিত লাইনগুলি মন্তব্য করুন -
<Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> <Directory "/var/www/cgi-bin"> Options All </Directory>
এখানে, আমরা ধরে নিচ্ছি যে আপনার ওয়েব সার্ভার চালু আছে এবং সফলভাবে চলছে এবং আপনি পার্ল বা শেল ইত্যাদির মতো অন্য কোনো CGI প্রোগ্রাম চালাতে পারবেন।