FastCGI
فاسٹ سی جی آئی ویب سرور کے ساتھ انٹرایکٹو پروگراموں کو مربوط کرنے کے لیے ایک بائنری پروٹوکول ہے۔ یہ سابقہ کامن گیٹ وے انٹرفیس (سی جی آئی) پر ایک تغیر ہے۔ فاسٹ سی جی آئی کا بنیادی مقصد ویب سرور اور سی جی آئی پروگراموں کے درمیان انٹرفیس سے متعلق اوور ہیڈ کو کم کرنا ہے، جس سے سرور کو فی یونٹ وقت میں زیادہ ویب پیج کی درخواستوں کو سنبھالنے کی اجازت ملتی ہے۔ ہسٹری کامن گیٹ وے انٹرفیس (سی جی آئی) بیرونی ایپلی کیشنز کو ویب سرورز سے مربوط کرنے کے لیے ایک پروٹوکول ہے۔ سی جی آئی ایپلی کیشنز الگ الگ عمل میں چلتی ہیں، جو ہر درخواست کے آغاز میں بنائی جاتی ہیں اور آخر میں پھاڑ دی جاتی ہیں۔ یہ "ایک نیا عمل فی درخواست" ماڈل سی جی آئی پروگراموں کو نافذ کرنا بہت آسان بناتا ہے، لیکن کارکردگی اور پیمائش کو محدود کرتا ہے۔ زیادہ بوجھ پر، عمل کی تخلیق اور تباہی کے لیے آپریٹنگ سسٹم اوور ہیڈ اہم ہو جاتا ہے۔ نیز، سی جی آئی عمل ماڈل وسائل کے دوبارہ استعمال کے طریقوں کو محدود کرتا ہے، جیسے ڈیٹا بیس کنکشن کا دوبارہ استعمال، میموری کیشنگ وغیرہ۔ سی جی آئی کی اسکیل ایبلٹی کوتاہیوں کو دور کرنے کے لیے اوپن مارکیٹ نے فاسٹ سی جی آئی تیار کیا اور اسے پہلی بار 1990 کی دہائی کے وسط میں اپنے ویب سرور پروڈکٹ میں متعارف کرایا۔ اوپن مارکیٹ نے اصل میں فاسٹ سی جی آئی کو جزوی طور پر نیٹ اسکیپ کے ملکیتی، ان پروسیس ایپلی کیشن پروگرامنگ انٹرفیس (اے پی آئی) (نیٹ اسکیپ سرور ایپلی کیشن پروگرامنگ انٹرفیس (این ایس اے پی آئی)) کے مسابقتی ردعمل کے طور پر ویب ایپلی کیشنز تیار کرنے کے لیے تیار کیا۔ جب کہ پہلے اوپن مارکیٹ کے ذریعہ تیار کیا گیا، فاسٹ سی جی آئی کو پھر کئی دیگر ویب سرور بنانے والوں کے ذریعہ نافذ کیا گیا۔ تاہم، اس کے نقطہ نظر نے سرور-سب پروگرام مواصلات کو تیز کرنے اور آسان بنانے کے دیگر طریقوں کے خلاف مقابلہ کیا۔ اپاچی ایچ ٹی ٹی پی سرور ماڈیول جیسے موڈ _ پرل اور موڈ _ پی ایچ پی تقریبا ایک ہی وقت میں نمودار ہوئے، اور تیزی سے مقبولیت حاصل کی۔ سی جی آئی سمیت یہ تمام مختلف طریقے عام استعمال میں ہیں۔ عمل درآمد کی تفصیلات ہر درخواست کے لیے ایک نیا عمل بنانے کے بجائے، فاسٹ سی جی آئی درخواستوں کے سلسلے کو سنبھالنے کے لیے مستقل عمل کا استعمال کرتا ہے۔ یہ عمل فاسٹ سی جی آئی سرور کی ملکیت ہیں، ویب سرور کی نہیں۔ آنے والی درخواست کی خدمت کے لیے، ویب سرور ماحولیاتی متغیر معلومات اور پیج کی درخواست کو فاسٹ سی جی آئی کے عمل کو یا تو یونکس ڈومین ساکٹ، نامی پائپ، یا ٹرانسمیشن کنٹرول پروٹوکول (ٹی سی پی) کنکشن پر بھیجتا ہے۔ ردعمل عمل سے اسی کنکشن پر ویب سرور کو واپس کیے جاتے ہیں، اور ویب سرور پھر اس جواب کو اختتامی صارف تک پہنچاتا ہے۔ ردعمل کے اختتام پر کنکشن بند ہو سکتا ہے، لیکن ویب سرور اور فاسٹ سی جی آئی سروس دونوں کے عمل برقرار رہتے ہیں۔ ہر انفرادی فاسٹ سی جی آئی عمل اپنی زندگی میں بہت سی درخواستوں کو سنبھال سکتا ہے، اس طرح فی درخواست کے عمل کی تخلیق اور خاتمے کے اوور ہیڈ سے بچ سکتا ہے۔ متعدد درخواستوں پر بیک وقت کارروائی کئی طریقوں سے کی جا سکتی ہے: اندرونی ملٹی پلیکسنگ کے ساتھ ایک کنکشن کا استعمال کرکے (یعنی ایک کنکشن پر متعدد درخواستیں) ؛ متعدد کنکشن کا استعمال کرکے ؛ یا ان طریقوں کے امتزاج کے ذریعے۔ متعدد فاسٹ سی جی آئی سرورز کو ترتیب دیا جا سکتا ہے، جس سے استحکام اور توسیع پذیری میں اضافہ ہوتا ہے۔ ویب سائٹ کے منتظمین اور پروگرامرز یہ جان سکتے ہیں کہ فاسٹ سی جی آئی میں ویب سرور سے ویب ایپلی کیشنز کو الگ کرنے کے سرایت شدہ ترجمانوں (موڈ _ پرل، موڈ _ پی ایچ پی، وغیرہ) کے مقابلے میں بہت سے فوائد ہیں۔ یہ علیحدگی سرور اور درخواست کے عمل کو آزادانہ طور پر دوبارہ شروع کرنے کی اجازت دیتی ہے-مصروف ویب سائٹوں کے لیے ایک اہم غور۔ یہ فی ایپلیکیشن، ہوسٹنگ سروس سیکیورٹی پالیسیوں کے نفاذ کو بھی قابل بناتا ہے، جو کہ آئی ایس پیز اور ویب ہوسٹنگ کمپنیوں کے لیے ایک اہم ضرورت ہے۔ مختلف قسم کی آنے والی درخواستوں کو مخصوص فاسٹ سی جی آئی سرورز میں تقسیم کیا جا سکتا ہے جو اس قسم کی درخواستوں کو مؤثر طریقے سے سنبھالنے کے لیے لیس ہیں۔ ویب سرورز جو فاسٹ سی جی آئی نوٹ کو لاگو کرتے ہیں: جب تک کہ بیان نہ کیا جائے، فاسٹ سی جی آئی کے نفاذ کی مکملتا نامعلوم ہے اپاچی ایچ ٹی ٹی پی سرور (جزوی) کے ذریعے لاگو کیا گیا ہے۔ یہ ماڈیول تھرڈ پارٹی ہوا کرتا تھا، لیکن اسے 2009 میں اپاچی سافٹ ویئر فاؤنڈیشن (اے ایس ایف) کو اپاچی سرور کے ذیلی پروجیکٹ کے طور پر دیا گیا تھا، جسے کرس ڈیروچ نے چرواہا تھا۔ یہ صرف یونکس ڈومین ساکٹ کی حمایت کرتا ہے، کوئی ٹی سی پی ساکٹ نہیں۔ ایک تھرڈ پارٹی ماڈیول بھی استعمال کیا جا رہا ہے۔ تھوڑی دیر کے لیے، یہ ماڈیول اب اپاچی 2.4. x کے تحت صحیح طریقے سے مرتب نہیں کیا گیا، حالانکہ اس مسئلے کو اصل پروجیکٹ کے کانٹے سے حل کیا گیا ہے۔ اپاچی 1. x ڈیزائن کے ذریعے ایک کنکشن کے ذریعے درخواستوں کی ملٹی پلیکسنگ ممنوع ہے، لہذا یہ اپاچی 2.4 میں سپورٹ نہیں ہے، ٹی سی پی فاسٹ سی جی آئی سرورز کی سپورٹ کرتے ہوئے شامل کیا گیا تھا۔ کیڈی چیروکی ہائیواتھا لوڈ بیلنسنگ فاسٹ سی جی آئی سپورٹ کروٹڈ فاسٹ سی جی آئی سرورز جیٹی کیریو ویب اسٹار لائٹ ٹی پی ڈی لائٹ اسپیڈ ویب سرور مائیکروسافٹ آئی آئی ایس نگنکس نوی سرور اوریکل آئی پلانیٹ ویب سرور اوپن بی ایس ڈی کا اوپن مارکیٹ ویب سرور ریزن ویب اور ایپلیکیشن سرور روکسن ویب سرور شممر کیٹ ویب سرور زیوس ویب سرور لینگویج بائنڈنگز کو اس کے اے پی آئی فاسٹ سی جی آئی کے لیے کسی بھی زبان میں لاگو کیا جا سکتا ہے جو نیٹ ورک ساکٹ کو سپورٹ کرتا ہے۔ چونکہ "فاسٹ سی جی آئی ایک پروٹوکول ہے، نفاذ نہیں"، اس لیے یہ کسی ایک زبان سے مضبوطی سے منسلک نہیں ہے۔ ایپلیکیشن پروگرامنگ انٹرفیس (اے پی آئی) اس کے لیے موجود ہیں: حالیہ فریم ورک جیسے روبی آن ریلز، کیٹالسٹ، جانگو، کیپلر اور پلاک سرایت شدہ ترجمانوں (مثال کے طور پر موڈ _ روبی، موڈ _ پرل، موڈ _ ازگر یا موڈ _ لوا)، یا فاسٹ سی جی آئی کے ساتھ استعمال کی اجازت دیتے ہیں۔ حوالہ جات بیرونی لنکس-فورک/نیچے کا آئینہ فاسٹ سی جی آئی ویب سائٹ-پرانا فاسٹ سی جی آئی ہوم پیج، جیسا کہ یہ کام کرتے وقت ظاہر ہوا نفاذ-اپاچی کے لیے نفاذ HTTPd-مائیکروسافٹ IIS کے لیے نفاذ-اپاچی 2. x موڈ _ پراکسی ویب ٹیکنالوجی کے لیے تجرباتی نفاذ