কমন গেটওয়ে ইন্টারফেস (সিজিআই) কী?


745

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

আমি ওয়েব বিকাশের অভিজ্ঞতা সহ পিএইচপি প্রোগ্রামার।

ব্যবহারকারীর (ক্লায়েন্ট) পৃষ্ঠার জন্য অনুরোধ ---> ওয়েবসার্ভার (-> এম্বেড করা পিএইচপি ইন্টারপ্রেটার) ----> সার্ভার সাইড (পিএইচপি) স্ক্রিপ্ট ---> মাইএসকিউএল সার্ভার।

এখন বলুন যে আমার পিএইচপি স্ক্রিপ্ট মাইএসকিউএল সার্ভার এবং ম্যাটল্যাব সার্ভার এবং অন্য কোনও সার্ভার থেকে ফলাফল আনতে পারে।

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

  • সিজিআই ঠিক কী?

  • বড় ব্যাপারটি /cgi-bin/*.cgiকী? এই কি হচ্ছে? cgi-binসার্ভারে এই ডিরেক্টরিটি কী তা আমি জানি না । আমি জানি না কেন তাদের * .cgi এক্সটেনশান রয়েছে।

  • পার্ল কেন সবসময় আসে না। সিজিআই এবং পার্ল (ভাষা)। আমি জানি না এই দু'জনের কী আছে। প্রায়শই আমি এই দু'জনকে "সিজিআই এবং পার্ল" এর সংমিশ্রণে শুনতে থাকি। এই বইটি পার্ল সহ আরও একটি দুর্দান্ত উদাহরণ সিজিআই প্রোগ্রামিং । "পিএইচপি / জেএসপি / এএসপি সহ সিজিআই প্রোগ্রামিং" কেন নয়? এ জাতীয় জিনিস আমি কখনও দেখিনি।

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

  • লোকেরা বলে যে সিজিআই হ্রাস করা হয়েছে এবং এখন আর ব্যবহৃত হচ্ছে না। তাই নাকি? সর্বশেষ আপডেট কি?

একবার, আমি এমন একটি পরিস্থিতিতে ছুঁড়েছি যেখানে আমাকে ওয়েব সার্ভারে (অ্যাপাচি এইচটিটিপিডি) HTTP PUT অনুরোধ জানাতে হয়েছিল। এটা অনেক পিছনে। সুতরাং, যতদূর আমি মনে করি এটিই আমি করেছি:

  1. ওয়েবসার্ভারকে কিছু এইচটিটিপি পুট অনুরোধ কয়েকটিকে পাস করার জন্য বলার জন্য অ্যাপাচি এইচটিটিপিডি-র কনফিগারেশন ফাইল সম্পাদনা করেছে put.php(আমাকে এই পিএইচপি স্ক্রিপ্টটি লিখতে হয়েছিল)

  2. অনুরোধটি পরিচালনা করতে put.php প্রয়োগ করুন (ফাইলটি উল্লিখিত স্থানে সংরক্ষণ করুন)

লোকেরা বলেছিল যে আমি একটি সিজিআই স্ক্রিপ্ট লিখেছি। সিরিয়াসলি, তারা কী বলছে তা সম্পর্কে আমার কোনও ধারণা ছিল না।

  • আমি কি সত্যিই সিজিআই স্ক্রিপ্ট লিখেছিলাম?

আমি আশা করি আপনি বুঝতে পেরেছেন আমার বিভ্রান্তি কী। (কারণ আমি নিজেই জানি না আমি কোথায় বিভ্রান্ত হয়েছি)। আমি আপনাকে বলছি আপনার উত্তরটি যথাসম্ভব সহজ রাখার জন্য। আমি সত্যিই কোনও অভিনব প্রযুক্তিগত পরিভাষা বুঝতে পারি না। অন্তত এই ক্ষেত্রে না।

সম্পাদনা করুন:

আমি এই আশ্চর্যজনক টিউটোরিয়ালটি পেয়েছি "সিজিআই প্রোগ্রামিংটি সহজ!" - সিজিআই টিউটোরিয়াল , যা ধারণাগুলি সহজতম পদ্ধতিতে ব্যাখ্যা করে । এই নিবন্ধটি পড়ার পরে আপনি আসল কোডের নমুনাগুলি সহ আপনার বোঝার পরিপূরক করতে সি- তে সিজিআই প্রোগ্রামিংয়ের সাথে শুরু করা পড়তে চাইতে পারেন । আমি এই টিউটোরিয়ালে এই লিঙ্কগুলি উইকিপিডিয়ায় নিবন্ধটিতেও যুক্ত করেছি: http://en.wikedia.org/wiki/Common_Gateway_Interface


9
আমি ইতিমধ্যে কোবলে সিজিআই রাইটেন দেখেছি। কিডিং না!
লুক এম

আগ্রহী @ লুচ এম। আপনি কোন সিজিআই বলতে চাইছেন (লিনকিউতে একটি রাইস্টার রয়েছে তা প্রদত্ত ...)?
জো

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

1
নব্বইয়ের দশকের মাঝামাঝি ফিরে আমি হাইপারকার্ডে বেশ কয়েকটি সিজিআই স্ক্রিপ্ট লিখেছিলাম
নীল ডেভিস

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

উত্তর:


427

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

আপনার চিত্র ব্যবহার করতে:

user (client) request for page ---> webserver ---[CGI]----> Server side Program ---> MySQL Server.

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

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

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

সুতরাং, আপনার প্রশ্নের উত্তর:

সিজিআই ঠিক কী?

উপরে দেখুন.

/Cgi-bin/*.cgi এর সাথে বড় চুক্তি কী? এই কি? সার্ভারে এই সিজি-বিন ডিরেক্টরিটি কী তা আমি জানি না। আমি জানি না কেন তাদের * .cgi এক্সটেনশান রয়েছে।

এটি সিজিআই প্রোগ্রামগুলির জন্য theতিহ্যবাহী জায়গা, অনেক ওয়েবসারভার সিজিআই প্রোগ্রাম হিসাবে সেখানে সমস্ত বাইনারিগুলি কার্যকর করতে কনফিগার করা এই ডিরেক্টরিটি নিয়ে আসে। .Cgi এক্সটেনশানটি এক্সিকিউটেবলকে বোঝায় যা প্রত্যাশিত সিজিআইয়ের মাধ্যমে কাজ করবে।

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

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

সিজিতে সিজিআই প্রোগ্রামিং এটি আমাকে অনেক গুলিয়ে দেয়। সি তে ?? সিরিয়াসলি ?? আমি কী বলব জানি না। আমি "সি" তে "বিভ্রান্ত হয়ে পড়েছি।" এটি সবকিছু পরিবর্তন করে। প্রোগ্রামটি সংকলন এবং সম্পাদন করা দরকার web এটি ওয়েব প্রোগ্রামিং সম্পর্কে আমার দৃষ্টিভঙ্গিকে পুরোপুরি পরিবর্তন করে I কখন আমি সংকলন করব? প্রোগ্রামটি কীভাবে কার্যকর হবে (কারণ এটি একটি হবে) মেশিন কোড, সুতরাং এটি একটি স্বাধীন প্রক্রিয়া হিসাবে কার্যকর করা আবশ্যক) এটি কীভাবে ওয়েব সার্ভারের সাথে যোগাযোগ করবে? আইপিসি? এবং সকেট প্রোগ্রামিং ব্যবহার করে সমস্ত সার্ভারের সাথে (আমার উদাহরণে ম্যাটল্যাব এবং মাইএসকিউএল) আমি হারিয়েছি !!

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

তারা বলে যে সিজিআই অবমূল্যায়ন করা হয়েছে। এটি আর ব্যবহার হয় না। তাই নাকি? এর সর্বশেষ আপডেট কি?

সিজিআই এখনও ব্যবহৃত হয় যখন পারফরম্যান্স সর্বজনীন না হয় এবং কোড কার্যকর করার সহজ উপায়গুলির প্রয়োজন হয়। এটি পূর্বে বর্ণিত কারণে অকার্যকর এবং ওয়েব পরিবেশে যে কোনও প্রোগ্রাম চালানোর আরও আধুনিক উপায় রয়েছে more বর্তমানে সর্বাধিক বিখ্যাত হ'ল ফাস্টসিজিআই


24
আরও সুনির্দিষ্টভাবে, এটি পরিবেশের ভেরিয়েবলগুলিতে অনুরোধের তথ্য কীভাবে প্রেরণ করা হয় (যেমন অনুরোধের ধরণ, দূরবর্তী আইপি ঠিকানা), কীভাবে রিকুস্ট বডি স্ট্যান্ডার্ড ইনপুট দিয়ে পাস হয় এবং কীভাবে প্রতিক্রিয়াটি স্ট্যান্ডার্ড আউটপুট দিয়ে যায়। আপনি বিশদ জানতে সিজিআই স্পেসিফিকেশন ( hoohoo.ncsa.illinois.edu/cgi ) উল্লেখ করতে পারেন ।
daf

3
Server side Programআপনার চিত্রটিতে ধরে নেওয়া আমার পিএইচপি স্ক্রিপ্ট। তো, আমি কখনই কোনও সিজিআই প্রোগ্রামিং করিনি? কারণ আমি ওয়েবਸਰভার এবং আমার পিএইচপি স্ক্রিপ্টের মধ্যে যা আসে তা কিছুই লিখিনি। অভিশাপ !! এই আমাকে হত্যা।
নখ 21

4
পিএইচপি এখনও সিজিআই প্রোটোকলের উপর নির্ভরশীল, $ _SERVER এর বেশিরভাগ সামগ্রী সিজিআই স্পেক থেকে সরাসরি from এবং "সিজিআই প্রোগ্রামিং" এর অর্থ হ'ল প্রোগ্রামটি অনুরোধটি প্রক্রিয়াজাত করে, প্রোটোকলটি নিজেই প্রয়োগ করে না। আপনি যদি 1993 এর যুগে ওয়েব প্রোগ্রামিং অগ্রণী হিসাবে পিএইচপি দিয়ে যা করেন তা ব্যাখ্যা করে থাকেন, তবে তিনি এটিকে সিজিআই প্রোগ্রামিংয়ের একটি উন্নত (যদিও সম্ভবত উইম্পি) ফর্ম হিসাবে বিবেচনা করবেন।
মাইকেল বর্গওয়ার্ট

5
@ মিশেল: তবে মোড_পিএফপি দিয়ে যখন চালানো হয় তখন মোটেও সিজিআই হয় না (এমনকি এটি নির্ভর হলেও) if এবং আমি সম্মত হই যে সিজিআই এর মাধ্যমে সম্পাদিত প্রোটোকল এবং স্ক্রিপ্ট উভয়কেই বোঝায়।
ভিঙ্কো ভার্সালোভিক

2
@ ভিঙ্কো ভার্সালভিক: সিজিআই যদি ওয়েব সার্ভারে এক্সপ্লিট করার জন্য পার্ল, সি বা অন্যান্য ভাষার জন্য একটি ইন্টারফেস হয় তবে আপাচে চালানোর জন্য পিএইচপি কোন ইন্টারফেস ব্যবহার করে ????????? এবং পিএইচপি কি সিজিআই নির্দিষ্টকরণের আওতায় আসে ??
হার্ডিক

63

সিজিআই ঠিক কী?

ওয়েব সার্ভারের কোনও প্রোগ্রাম থেকে এটির ডেটা পাওয়ার উপকরণ (উদাহরণস্বরূপ, কোনও ফাইল))

/Cgi-bin/*.cgi এর সাথে বড় চুক্তি কী?

কোন ব্যাপারই না. এটি কেবল একটি সম্মেলন।

সার্ভারে এই সিজি-বিন ডিরেক্টরিটি কী তা আমি জানি না। আমি জানি না কেন তাদের * .cgi এক্সটেনশান রয়েছে।

সার্ভারটি ফাইলটির সাথে কী করতে হবে তা জানতে হবে (অর্থাত কেবল পরিবেশন করার পরিবর্তে এটি কার্যকর করার প্রোগ্রাম হিসাবে বিবেচনা করুন)। একটি .html এক্সটেনশন থাকা এটিকে একটি পাঠ্য / এইচটিএমএল সামগ্রী সামগ্রী ব্যবহার করতে বলে। .Cgi এক্সটেনশন থাকা এটিকে প্রোগ্রাম হিসাবে চালিত করতে বলে।

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

পার্ল কেন সবসময় আসে না।

এটা হয় না। পার্ল সিজিআই হিসাবে একই সময়ে কেবল বড় এবং জনপ্রিয় ছিলেন।

আমি কয়েক বছর ধরে পার্ল সিজিআই ব্যবহার করি না। আমি দীর্ঘদিন ধরে মোড_পার্ল ব্যবহার করছিলাম এবং আজকাল ফাস্টসিজিআইয়ের সাথে পিএসজিআই / প্ল্যাকের দিকে ঝুঁকছি।

পার্ল কেন সিজিআই প্রোগ্রামিং "পিএইচপি / জেএসপি / এএসপি সহ নয়" এই বইটি আরেকটি দুর্দান্ত উদাহরণ।

সিজিআই খুব দক্ষ নয়। ওয়েব সার্ভারের প্রোগ্রামগুলির সাথে কথা বলার জন্য আরও ভাল পদ্ধতিগুলি পিএইচপি হিসাবে প্রায় একই সময়ে এসেছিল। JSP এবং এএসপি হয় প্রোগ্রাম কথা বলা জন্য বিভিন্ন পদ্ধতি।

সিজিতে সিজিআই প্রোগ্রামিং এটি আমাকে অনেক গুলিয়ে দেয়। সি তে ?? সিরিয়াসলি ??

এটি প্রোগ্রামিংয়ের ভাষা, কেন নয়?

আমি কখন সংকলন করব?

  1. কোড লিখুন
  2. কম্পাইল
  3. URL অ্যাক্সেস করুন
  4. ওয়েবসার্ভার প্রোগ্রাম চালায়

প্রোগ্রামটি কীভাবে কার্যকর হয় (কারণ এটি একটি মেশিন কোড হবে, সুতরাং এটি অবশ্যই একটি স্বাধীন প্রক্রিয়া হিসাবে কার্যকর করা হবে)।

এটি একটি স্বাধীন প্রক্রিয়া হিসাবে চালিত করতে হবে না (আপনি সিতে অ্যাপাচি মডিউলগুলি লিখতে পারেন), তবে সিজিআইয়ের পুরো ধারণাটি এটি একটি বাহ্যিক প্রক্রিয়া চালু করে।

এটি ওয়েব সার্ভারের সাথে কীভাবে যোগাযোগ করে? আইপিসি?

STDIN / STDOUT এবং পরিবেশের ভেরিয়েবল - সিজিআই স্পেসিফিকেশন হিসাবে সংজ্ঞায়িত।

এবং সকেট প্রোগ্রামিং ব্যবহার করে সমস্ত সার্ভারের সাথে (আমার উদাহরণে ম্যাটল্যাব এবং মাইএসকিউএল) ইন্টারফেসিং?

আপনার পছন্দ মত এবং সমর্থিত যে কোনও পদ্ধতি ব্যবহার করে।

তারা বলে যে সিজিআই অবমূল্যায়ন করা হয়। এটি আর ব্যবহার হয় না। তাই নাকি?

সিজিআই অদক্ষ, ধীর এবং সহজ। এটি খুব কমই ব্যবহৃত হয়, যখন এটি ব্যবহৃত হয়, এটি কারণ এটি সহজ। যদি পারফরম্যান্স কোনও বড় বিষয় না হয়, তবে সরলতা অনেক মূল্যবান।

এর সর্বশেষ আপডেট কি?

1.1


1. কোড লিখুন 2. সংকলন 3. অ্যাক্সেস ইউআরএল 4. ওয়েবসার্ভার প্রোগ্রাম চালায়। || তবে ওয়েবসার্ভার কীভাবে জানতে পারে যে আপনি সংকলিত এক্সিকিউটেবল প্রোগ্রামটি কোথায় রেখেছেন? এটি কীভাবে জানবে যে কোন এক্সিকিউটেবল প্রোগ্রামটি (তাদের সবার মধ্যে) চালানো হবে?
পেসারিয়ার

@ পেসারিয়র - কোনও স্ট্যাটিক ফাইলের জন্য অনুরোধ করা হলে ক্লায়েন্টকে কোন স্ট্যাটিক ফাইলটি প্রেরণ করতে হবে তা একইভাবে তা জানে।
কোয়ান্টিন

41

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

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

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

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

সি এর মতো সংকলিত ভাষা সাধারণত পার্লের মতো স্ক্রিপ্টিং ভাষা হিসাবে ব্যবহৃত হত, প্রায়শই সিজিআই পরিবেশের অ্যাক্সেসকে সহজ করার জন্য লাইব্রেরি ব্যবহার করে।

সিজিআইয়ের একটি বড় অসুবিধা হ'ল প্রতিটি অনুরোধের জন্য একটি নতুন প্রোগ্রাম তৈরি করা হয় যাতে অনুরোধগুলির মধ্যে রাষ্ট্র বজায় রাখা একটি বড় পারফরম্যান্স ইস্যু হতে পারে। রাজ্যটি কুকিগুলিতে পরিচালনা করা হতে পারে বা কোনও ইউআরএল এ এনকোড করা হতে পারে তবে এটি বড় হয়ে গেলে এটি অন্য কোথাও সংরক্ষণ করতে হবে এবং এনকোডযুক্ত ইউআরএল তথ্য বা কোনও কুকি থেকে কীড করতে হবে। প্রতিটি সিজিআইয়ের অনুরোধের পরে কোনও জায়গা থেকে সঞ্চিত রাজ্যটি আবার লোড করতে হবে।

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

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


1
বিরক্ত। অন্য কোনও উত্তর না থাকলে আমি এটি লিখতে শুরু করেছিলাম, তবে উপায় পেয়েছি। এখন এটি তালিকার প্রায় # 8। আমার এখনই এটি মুছে ফেলার ইচ্ছাশক্তি নেই, আমি ফিরে এসে এটি মুছে ফেলব।
সিবি বেইলি

6
আরে .. দয়া করে এটি মুছবেন না। এটি আরও স্পষ্ট উপায়ে কিছু জিনিস বলে। আমি এটি সহায়ক বলে মনে করি। অন্য কেউ হয়তো এটির সন্ধান করতে পারে। :)
নখর

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

18

সিজিআইটি আরএফসি 3875-এ নির্দিষ্ট করা হয়েছে , যদিও এটি মূল এনসিএসএ নথির পরবর্তীকালে "অফিসিয়াল" কোডিকেশন । মূলত, সিজিআই কোনও ওয়েব প্রোগ্রামার থেকে কোনও প্রোগ্রাম, কোনও ভাষায়, প্রক্রিয়া করার জন্য কোনও এইচটিটিপি অনুরোধ সম্পর্কিত ডেটা পাস করার জন্য একটি প্রোটোকল সংজ্ঞায়িত করে। সেই অনুমানটি লেখা হয়েছিল (1993), বেশিরভাগ ওয়েব সার্ভারে কেবল স্ট্যাটিক পৃষ্ঠাগুলি ছিল, "ওয়েব অ্যাপস" একটি বিরল এবং নতুন জিনিস ছিল, সুতরাং এগুলিকে "সাধারণ" স্ট্যাটিক সামগ্রী থেকে আলাদা রাখা স্বাভাবিক বলে মনে হয়েছিল cgi-binস্থিতিশীল বিষয়বস্তু বাদে ডিরেক্টরিতে এবং এগুলিতে শেষ হওয়া .cgi

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


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

@ পেসারিয়র: এটি ওয়েব পৃষ্ঠাগুলি উত্পন্ন করার জন্য একটি প্রোগ্রামিং ভাষা হিসাবে তৈরি করা হয়েছিল এবং এর 99.9% ব্যবহারকারী এটির জন্য এটি ব্যবহার করেন। এটি এমনকি এটির নামেও । অন্য যে কোনও কিছুর দাবি করা কেবল অর্থহীন চুল-বিভাজন। আপনি যদি এটি ইউআই অ্যাপ্লিকেশন, বৈজ্ঞানিক কম্পিউটিং বা এম্বেড প্রোগ্রামিংয়ের জন্য ব্যবহার করে থাকেন তবে ভাল, খুশি হোন, কেউ আপনাকে বলছে না যে এটি অনুমোদিত নয়।
মাইকেল বর্গওয়ার্ট

13

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

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

/cgi-bin/*.cgiএমন একটি সরল পথ যা লোকেরা সাধারণত তাদের সিজিআই স্ক্রিপ্ট রাখে। ওয়েব সার্ভারটি সাধারণত সেই পথ থেকে সিজিআই স্ক্রিপ্টগুলি আনার জন্য ডিফল্টরূপে কনফিগার করা হয়।

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

আপনি কোনও সিজিআই স্ক্রিপ্ট প্রয়োগ করেছেন বা না এটি আপনার ওয়েব স্ক্রিপ্ট দ্বারা কী স্ক্রিপ্ট কার্যকর করা হবে তার উপর নির্ভর করে।


12

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

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


2
ডাউনভোটিং নয় তবে বেশিরভাগ পাইথন ওয়েব ইনস্টল আমি দেখেছি যেখানে মোড_উজি বা মোড_পাইথন রয়েছে।
ক্রিস্টোফিড

বেশিরভাগ লোক সিজিআই স্ক্রিপ্ট শব্দটি এভাবে ব্যবহার করেন তবে শব্দটির অর্থ এটি একেবারেই ঠিক নয়।
পুনরায় পোস্টার

আপনি দোভাষী বলছেন কিন্তু সি খুব কমই ব্যাখ্যা করা হয় এবং সংকলিত প্রোগ্রাম যেমন সি সংকলিত প্রোগ্রামগুলি সিজিআইয়ের জন্য ব্যবহার করা যেতে পারে।
ব্যবহারকারী 34660

11

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

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

বেশিরভাগ পিএইচপি স্ক্রিপ্ট ওয়েব সার্ভার প্রক্রিয়াতে চালিত হয় mod_php। এটি সিজিআই নয়।

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


@ ইগনাসিও ওয়াজকেজ-আব্রামস: সিজিআই ইন্টারফেস যদি নতুন প্রক্রিয়া তৈরি করে, প্রতিবারই সিজিআই এবং মোড_এফপি-র মধ্যে নির্বাহের পার্থক্যের চেয়ে সিজিআই রিসোর্সের জন্য অনুরোধটি পেয়ে থাকে ??????? সিজিআই এবং মোড_এফপি কি একই রকম ???? বা সিজিআই ইন্টারফেসের অধীনে চলমান পিএইচপি স্ক্রিপ্টগুলি কি মোড_এফপি এর অধীনে লেখা সম্ভব নয় ???
হার্ডিক

@ হার্দিক: মোড_এফপি এইচটিটিপিডি-র অংশ হিসাবে চলে যা এটি নিজস্ব প্রক্রিয়াগুলির জন্য দায়ী।
ইগনাসিও ওয়াজকেজ-আব্রামস

এই 'বাহ্যিক প্রোগ্রাম' কি? আমি পিএইচপি-এফপিএম দিয়ে পিএইচপি চালাতে পারলে কী এটি দোভাষী হয়?
সরু

@ স্লেয়ার: এটি একটি স্বেচ্ছাসেবী প্রোগ্রাম যা ওয়েব সার্ভার নয়।
Ignacio Vazquez-Abram 16

@ IgnacioVazquez-Abram তাই কি ধরে নেওয়া নিরাপদ যে interpreterপিএইচপি-এফপিএম দিয়ে পিএমপি চালিয়ে যাচ্ছি যদি এটি হয় ?
আরও

7

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

এত কিছুর কারণে প্রচুর পারফরম্যান্স, সুরক্ষা, বহনযোগ্য সমস্যা যা খেলায় আসে issues তবে প্রথমে সিজিআই কী নয় তা জেনে রাখা ভাল, এটি কী তা বুঝতে।


7

একটি বাস্তব জীবনের উদাহরণ: একটি জটিল ডাটাবেস যা কোনও ওয়েবসাইটে দেখানো দরকার। যেহেতু ডেটাবেস 1986 (!) এর আশেপাশে কোথাও ডিজাইন করা হয়েছিল, তাই ডিস্কের স্পেসে সঞ্চয় করতে প্রচুর ডেটা বিভিন্ন উপায়ে প্যাক করা হয়েছিল।

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

তিনটি বুদ্ধিমান সমাধান রয়েছে:

  1. দ্রুত এবং নোংরা: পিএইচপি-তে অরক্ষিত ডেটা প্রেরণ করুন, এটি সেখানে বাছাই করুন। স্পষ্টতই একটি খুব ব্যয়বহুল সমাধান, কারণ পৃষ্ঠাটি যখনই ডাকা হবে তখনই এটি পুনরাবৃত্তি হবে
  2. ডাটাবেস ইঞ্জিনে একটি প্লাগইন লিখুন - তবে প্রশাসক তাদের সার্ভারে বিদেশী কোড চালানোর অনুমতি দেওয়ার জন্য প্রস্তুত ছিলেন না, বা
  3. আপনি কোনও প্রোগ্রামে (সি, পার্ল ইত্যাদি) এবং আউটপুট এইচটিএমএল ডেটা প্রক্রিয়া করতে পারেন। প্রোগ্রামটি নিজেই / সিজি-বিনে চলে যায় এবং ওয়েব সার্ভার (যেমন অ্যাপাচি) পিএইচপি-র মাধ্যমে নয়, ডাকে।

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


1
আমার জন্য সেরা উত্তর, আমি এটি পেয়েছি।
ড্যানিয়েল কাটজ

7

একটি সিজিআই স্ক্রিপ্ট হ'ল একটি কনসোল / শেল প্রোগ্রাম। উইন্ডোজে, আপনি যখন "কমান্ড প্রম্পট" উইন্ডো ব্যবহার করেন, আপনি কনসোল প্রোগ্রামগুলি চালান। যখন কোনও ওয়েব সার্ভার একটি সিজিআই স্ক্রিপ্ট চালায় এটি পরিবেশ ভেরিয়েবল বা "স্ট্যান্ডার্ড ইনপুট" ব্যবহার করে কনসোল / শেল প্রোগ্রামকে ইনপুট সরবরাহ করে। স্ট্যান্ডার্ড ইনপুট কনসোল / শেল প্রোগ্রামে ডেটা টাইপের মতো; সিজিআই স্ক্রিপ্টের ক্ষেত্রে ওয়েব সার্ভার টাইপিং করে। সিজিআই স্ক্রিপ্ট ডেটা "স্ট্যান্ডার্ড আউটপুট" লিখে দেয় এবং সেই আউটপুট ক্লায়েন্টকে (ওয়েব ব্রাউজারে) একটি HTML পৃষ্ঠা হিসাবে প্রেরণ করা হয়। স্ট্যান্ডার্ড আউটপুট হ'ল আউটপুটটির মতো যা আপনি কনসোল / শেল প্রোগ্রামে দেখেন ওয়েব সার্ভারটি পড়ে তা পাঠিয়ে দেয়।

একটি সিজিআই স্ক্রিপ্ট একটি ব্রাউজার থেকে কার্যকর করা যেতে পারে। ইউআরআইতে সাধারণত একটি কোয়েরি স্ট্রিং থাকে যা সিজিআই স্ক্রিপ্টে সরবরাহ করা হয়। যদি পদ্ধতিটি "পেতে" থাকে তবে ক্যোরির স্ট্রিংটি সিজিআই স্ক্রিপ্টকে পরিবেশগত ভেরিয়েবলে QUERY_STRING বলা হয়। যদি পদ্ধতিটি "পোস্ট" হয় তবে স্ট্যান্ডার্ড ইনপুট (সিজিআই স্ক্রিপ্ট স্ট্যান্ডার্ড ইনপুট থেকে ক্যোরি স্ট্রিং পড়ে) ব্যবহার করে সিজিআই স্ক্রিপ্টে ক্যোরি স্ট্রিং সরবরাহ করা হয়।

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

আরএফসি 3875 "দ্য কমন গেটওয়ে ইন্টারফেস (সিজিআই)" সি ব্যবহার করে সি ব্যবহার করে আংশিকভাবে সি ব্যবহার করে, যেমন বলা হয়েছে যে পরিবেশের ভেরিয়েবলগুলি "সি লাইব্রেরি রুটিন গেটেনভ () বা ভেরিয়েবল এনভায়রনমেন্ট দ্বারা অ্যাক্সেস করা যায়"।

আপনি যদি সি / সি ++ ব্যবহার করে কোনও সিজিআই স্ক্রিপ্ট বিকাশ করছেন এবং এটি করতে মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও ব্যবহার করেন তবে আপনি কনসোল প্রোগ্রাম বিকাশ করতে পারবেন।


একটি "সিজিআই স্ক্রিপ্ট" একটি বিস্তৃত শব্দ এবং এতে এক্সিকিউটেবলও অন্তর্ভুক্ত থাকতে পারে।
71

6

একটি সিজিআই হ'ল একটি প্রোগ্রাম (বা একটি ওয়েব এপিআই) যা আপনি লিখেন এবং এটি ওয়েব সার্ভার সাইটে সংরক্ষণ করুন। সিজিআই একটি ফাইল।

এই ফাইলটি ওয়েব সার্ভারে বসে অপেক্ষা করে। যখন ক্লায়েন্ট ব্রাউজারটি আপনার সিজিআই ফাইলটি নির্বাহের জন্য ওয়েব সার্ভারে একটি অনুরোধ প্রেরণ করে তখন ওয়েব সার্ভার সার্ভার সাইটে আপনার সিজিআই ফাইলটি চালায়। এই সিজিআই প্রোগ্রামের ইনপুটগুলি যদি কোনও হয় তবে ক্লায়েন্ট ব্রাউজারের। এই সিজিআই প্রোগ্রামের আউটপুটগুলি ব্রাউজারে প্রেরণ করা হয়।

কোন সিজিআই প্রোগ্রাম লিখতে আপনি কোন ভাষাটি ব্যবহার করেন? অন্যান্য পোস্টে ইতিমধ্যে সি, জাভা, পিএইচপি, পার্ল ইত্যাদি উল্লেখ রয়েছে


4

সিজিআই এর পিছনে ধারণাটি হ'ল কোনও প্রোগ্রাম / স্ক্রিপ্ট (পার্ল বা এমনকি সি) কিনা STDIN(অনুরোধ ডেটা) মাধ্যমে ইনপুট গ্রহণ করে এবং STDOUT(প্রতিধ্বনি, printfবিবৃতি) এর মাধ্যমে ডেটা আউটপুট করে ।

বেশিরভাগ পিএইচপি স্ক্রিপ্টগুলি যোগ্য না হওয়ার কারণ হ'ল এগুলি পিএইচপি অ্যাপাচি মডিউলের অধীনে চালিত হয় ।

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