FastCGI
ফাস্ট সি. জি. আই হল একটি ওয়েব সার্ভারের সাথে ইন্টারেক্টিভ প্রোগ্রামগুলির সংযোগ স্থাপনের জন্য একটি বাইনারি প্রোটোকল। এটি আগের কমন গেটওয়ে ইন্টারফেসের (সি. জি. আই) একটি বৈচিত্র। ফাস্ট সি. জি. আই-এর মূল লক্ষ্য হল ওয়েব সার্ভার এবং সি. জি. আই প্রোগ্রামগুলির মধ্যে ইন্টারফেসিং সম্পর্কিত ওভারহেড হ্রাস করা, যা একটি সার্ভারকে প্রতি একক সময়ে আরও বেশি ওয়েব পৃষ্ঠার অনুরোধ পরিচালনা করার অনুমতি দেয়। কমন গেটওয়ে ইন্টারফেস (সি. জি. আই) হল ওয়েব সার্ভারের সাথে বাহ্যিক অ্যাপ্লিকেশনগুলির সংযোগ স্থাপনের জন্য একটি প্রোটোকল। সি. জি. আই অ্যাপ্লিকেশনগুলি পৃথক প্রক্রিয়ায় চলে, যা প্রতিটি অনুরোধের শুরুতে তৈরি করা হয় এবং শেষে ছিঁড়ে ফেলা হয়। এই "অনুরোধ অনুযায়ী একটি নতুন প্রক্রিয়া" মডেল সি. জি. আই প্রোগ্রামগুলিকে বাস্তবায়িত করা খুব সহজ করে তোলে, তবে দক্ষতা এবং মাপকাঠি সীমাবদ্ধ করে। উচ্চ লোডে, প্রক্রিয়া তৈরি এবং ধ্বংসের জন্য অপারেটিং সিস্টেমের ওভারহেড উল্লেখযোগ্য হয়ে ওঠে। এছাড়াও, সি. জি. আই প্রক্রিয়া মডেল সম্পদ পুনঃব্যবহারের পদ্ধতিগুলিকে সীমাবদ্ধ করে, যেমন ডাটাবেস সংযোগের পুনঃব্যবহার, ইন-মেমোরি ক্যাশিং ইত্যাদি। সি. জি. আই-এর পরিমাপযোগ্যতার ত্রুটিগুলি দূর করার জন্য, ওপেন মার্কেট ফাস্ট সি. জি. আই-এর বিকাশ ঘটায় এবং 1990-এর দশকের মাঝামাঝি সময়ে তাদের ওয়েব সার্ভার পণ্যে এটি প্রথম চালু করে। ওপেন মার্কেট মূলত ওয়েব অ্যাপ্লিকেশন বিকাশের জন্য নেটস্কেপের মালিকানাধীন, ইন-প্রসেস অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এপিআই) (নেটস্কেপ সার্ভার অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস (এনএসএপিআই))-এর প্রতিযোগিতামূলক প্রতিক্রিয়া হিসাবে ফাস্টসিজিআই-কে বিকশিত করেছিল। প্রথমে ওপেন মার্কেট দ্বারা বিকশিত হলেও, ফাস্টসিজিআই তখন অন্যান্য বেশ কয়েকটি ওয়েব সার্ভার নির্মাতাদের দ্বারা বাস্তবায়িত হয়েছিল। যাইহোক, এর পদ্ধতি সার্ভার-সাবপ্রোগ্রাম যোগাযোগের গতি এবং সরলীকরণের জন্য অন্যান্য পদ্ধতির বিরুদ্ধে প্রতিদ্বন্দ্বিতা করে। অ্যাপাচি এইচটিটিপি সার্ভার মডিউল যেমন মোড _ পার্ল এবং মোড _ পিএইচপি প্রায় একই সময়ে উপস্থিত হয়েছিল এবং দ্রুত জনপ্রিয়তা অর্জন করেছিল। সি. জি. আই সহ এই সমস্ত বিভিন্ন পদ্ধতি সাধারণ ব্যবহারে রয়েছে। প্রতিটি অনুরোধের জন্য একটি নতুন প্রক্রিয়া তৈরি করার পরিবর্তে, ফাস্টসিজিআই ধারাবাহিক অনুরোধগুলি পরিচালনা করার জন্য স্থায়ী প্রক্রিয়াগুলি ব্যবহার করে। এই প্রক্রিয়াগুলি ফাস্টসিজিআই সার্ভারের মালিকানাধীন, ওয়েব সার্ভারের নয়। একটি ইনকামিং অনুরোধ পরিবেশন করার জন্য, ওয়েব সার্ভার একটি ইউনিক্স ডোমেন সকেট, একটি নামযুক্ত পাইপ বা একটি ট্রান্সমিশন কন্ট্রোল প্রোটোকল (টিসিপি) সংযোগের মাধ্যমে একটি ফাস্টসিজিআই প্রক্রিয়াতে পরিবেশ পরিবর্তনশীল তথ্য এবং পৃষ্ঠার অনুরোধ পাঠায়। প্রতিক্রিয়া প্রক্রিয়া থেকে একই সংযোগের মাধ্যমে ওয়েব সার্ভারে ফেরত দেওয়া হয় এবং ওয়েব সার্ভার তারপর শেষ ব্যবহারকারীকে সেই প্রতিক্রিয়া সরবরাহ করে। কোনও প্রতিক্রিয়ার শেষে সংযোগটি বন্ধ হয়ে যেতে পারে, তবে ওয়েব সার্ভার এবং ফাস্টসিজিআই পরিষেবা প্রক্রিয়া উভয়ই অব্যাহত থাকে। প্রতিটি পৃথক ফাস্টসিজিআই প্রক্রিয়া তার জীবদ্দশায় অনেক অনুরোধ পরিচালনা করতে পারে, যার ফলে প্রতি-অনুরোধ প্রক্রিয়া তৈরি এবং সমাপ্তির ওভারহেড এড়ানো যায়। একযোগে একাধিক অনুরোধ প্রক্রিয়াকরণ বিভিন্ন উপায়ে করা যেতে পারেঃ অভ্যন্তরীণ মাল্টিপ্লেক্সিংয়ের সাথে একটি সংযোগ ব্যবহার করে (অর্থাৎ, একটি সংযোগের উপর একাধিক অনুরোধ); একাধিক সংযোগ ব্যবহার করে; অথবা এই পদ্ধতিগুলির মিশ্রণ দ্বারা। একাধিক ফাস্টসিজিআই সার্ভার কনফিগার করা যেতে পারে, যা স্থিতিশীলতা এবং পরিমাপযোগ্যতা বৃদ্ধি করে। ওয়েব সাইট অ্যাডমিনিস্ট্রেটর এবং প্রোগ্রামাররা দেখতে পারেন যে ফাস্টসিজিআই-তে ওয়েব সার্ভার থেকে ওয়েব অ্যাপ্লিকেশনগুলিকে আলাদা করার অনেক সুবিধা রয়েছে এমবেডেড ইন্টারপ্রেটারের (মোড _ পার্ল, মোড _ পিএইচপি, ইত্যাদি) তুলনায়। এই পৃথকীকরণ সার্ভার এবং অ্যাপ্লিকেশন প্রক্রিয়াগুলি স্বাধীনভাবে পুনরায় চালু করার অনুমতি দেয়-ব্যস্ত ওয়েবসাইটগুলির জন্য একটি গুরুত্বপূর্ণ বিবেচনা। এটি প্রতি-অ্যাপ্লিকেশন, হোস্টিং পরিষেবা সুরক্ষা নীতিগুলি বাস্তবায়িত করতে সক্ষম করে, যা আইএসপি এবং ওয়েব হোস্টিং সংস্থাগুলির জন্য একটি গুরুত্বপূর্ণ প্রয়োজনীয়তা। বিভিন্ন ধরনের আগত অনুরোধগুলি নির্দিষ্ট ফাস্টসিজিআই সার্ভারগুলিতে বিতরণ করা যেতে পারে যা এই ধরনের অনুরোধগুলি দক্ষতার সাথে পরিচালনা করার জন্য সজ্জিত করা হয়েছে। ফাস্টসিজিআই নোট প্রয়োগকারী ওয়েব সার্ভারগুলিঃ যদি না বলা হয়, ফাস্টসিজিআই বাস্তবায়নের সম্পূর্ণতা অজানা অ্যাপাচি এইচটিটিপি সার্ভার (আংশিক) দ্বারা বাস্তবায়িত। এই মডিউলটি তৃতীয় পক্ষ হিসাবে ব্যবহৃত হত, তবে 2009 সালে অ্যাপাচি সার্ভার সাবপ্রজেক্ট হিসাবে অ্যাপাচি সফ্টওয়্যার ফাউন্ডেশনকে (এ. এস. এফ) ক্রিস ডারোচ দ্বারা অনুমোদিত হয়েছিল। এটি শুধুমাত্র ইউনিক্স ডোমেইন সকেটগুলিকে সমর্থন করে, কোনও টিসিপি সকেট নেই। একটি তৃতীয় পক্ষের মডিউলও ব্যবহার করা হচ্ছে। কিছু সময়ের জন্য, এই মডিউলটি আর অ্যাপাচি 2.4. x-এর অধীনে সঠিকভাবে সংকলিত হয়নি, যদিও সেই সমস্যাটি মূল প্রকল্পের কাঁটাচামচ দিয়ে সমাধান করা হয়েছে। একটি সংযোগের মাধ্যমে অনুরোধের মাল্টিপ্লেক্সিং অ্যাপাচি 1. x ডিজাইন দ্বারা নিষিদ্ধ, তাই এটি অ্যাপাচি 2.4-এ সমর্থিত নয়, টিসিপি ফাস্টসিজিআই সার্ভারগুলিকে সমর্থন করে যোগ করা হয়েছিল। ক্যাডি চেরোকি হিয়াওয়াথা লোড ব্যালেন্সিং ফাস্টসিজিআই সমর্থন ক্রোটড ফাস্টসিজিআই সার্ভারগুলিকে সমর্থন করে জেটি কেরিও ওয়েবস্টার লাইটপিড লাইটস্পিড ওয়েব সার্ভার মাইক্রোসফ্ট আইআইএস এনজিনেক্স নাভিসার্ভার ওরাকল আইপ্ল্যানেট ওয়েব সার্ভার ওপেনবিএসডি-এর ওপেন মার্কেট ওয়েব সার্ভার রসিন ওয়েব এবং অ্যাপ্লিকেশন সার্ভার রক্সেন ওয়েব সার্ভার শিমারক্যাট ওয়েব সার্ভার জিউস ওয়েব সার্ভার ল্যাঙ্গুয়েজ তার এপিআই ফাস্টসিজিআই-এর জন্য যে কোনও ভাষায় প্রয়োগ করা যেতে পারে যা নেটওয়ার্ক সকেটগুলিকে সমর্থন করে। যেহেতু "ফাস্টসিজিআই একটি প্রটোকল, কোনও বাস্তবায়ন নয়", তাই এটি কোনও একটি ভাষার সঙ্গে দৃঢ়ভাবে আবদ্ধ নয়। অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেসগুলি (এপিআই) এর জন্য বিদ্যমান যেমনঃ রুবি অন রেলস, ক্যাটালিস্ট, জ্যাঙ্গো, কেপলার এবং প্ল্যাকের মতো সাম্প্রতিক কাঠামোগুলি এমবেডেড ইন্টারপ্রেটার (উদাহরণস্বরূপ মোড _ রুবি, মোড _ পার্ল, মোড _ পাইথন বা মোড _ লুয়া), বা ফাস্টসিজিআই-এর সাথে ব্যবহারের অনুমতি দেয়। রেফারেন্স বাহ্যিক লিঙ্ক-ফাস্টসিজিআই ওয়েবসাইটের কাঁটাচামচ/আয়না-পুরানো ফাস্টসিজিআই হোম পেজ, যা কাজ করার সময় উপস্থিত হয়েছিল বাস্তবায়ন-অ্যাপাচি এইচটিপিডির জন্য বাস্তবায়ন-মাইক্রোসফ্ট আইআইএসের জন্য বাস্তবায়ন-অ্যাপাচি 2. x মোড _ প্রক্সি ওয়েব প্রযুক্তির জন্য পরীক্ষামূলক বাস্তবায়ন