واجهة المعابر العامةواجهة المعابر العامة
واجهة المعابر العامة (CGI) هي بروتوكول قياسي لربط تطبيق برمجي خارجي مع خادم للمعلومات، عادة ما يكون خادم الويب. الغرضمهمة خادم المعلومات هذا هي الاستجابة للطلبات (في حالة خوادم الويب(web servers) لطلبات العميل خلال متصفحات الشبكة) عن طريق إعادة إرسال النتائج. في كل مرة يتم تلقي طلب، يقوم الخادم بتحليل ما يحتاجه هذا الطلب، وإعادة إرسال الناتج المناسب. والطريقتين الأساسيتين للخادم للقيام بذلك هما:
واجهة المعابر العامة(CGI) حددت الطريقة الثابتة لتنفيذ الطريقة الثانية. انه يحدد كيفية انتقال معلومات الخادم والطلب إلى الأمر في شكل عوامل ومتغيرات، وكيفية قيام الأمر بإعادة نقل معلومات إضافية حول الناتج (مثل نوع الملف(MIME)) عن طريق إرفاقة برؤوس. التاريخفي عام 1993، كانت شبكة الويب العالمية(world wide web) صغيرة ولكنها مزدهرة. مطوري برامج الشبكة العالمية ومطوري المواقع بقوا على اتصال مع القائمة البريدية لشبكة الاتصالات العالمية ، لذلك كان هناك معيار لأنه لطلب سطور الأوامر القابلة للتنفيذ تم الاتفاق عليه. وهذه هي مساهمات واجهة المعابر العامة التي ذكرت على وجه التحديد :
وكتب فريق المركز الوطني لتطبيقات الحوسبة الفائقة المواصفات، ولا تزال NCSA تستخدمه. مطوري الويب الآخرين تبنوها، وصارت معيارا منذ ذلك الحين. مثالمثالا لبرنامج واجهة المعابر المشتركة(CGI) هو المستخدم في تنفيذ ويكي(Wiki). وكيل المستخدم يطلب اسم المدخل ؛ الخادم سيقوم باسترداد مصدر صفحة هذا المدخل (إن وجد)، وتحوله إلى لغة ترميز النص الفائق، وتقوم بإرسال النتيجة. المزيد من التفاصيلمن وجهة نظر خادم الويب (web server) توجد محددات مواقع معينة، http://www.example.com/wiki.cgi على سبيل المثال، تعرف بأنها المماثلة لتنفيذ البرنامج عن طريق واجهة المعابر المشتركة. عندما تلقي طلب رابط معين يتم تنفيذ هذا البرنامج المماثل. يتم تمرير البيانات في البرنامج باستخدام المتغيرات. وهذا على النقيض من التنفيذ التقليدي، حيث تستخدم سطورر الأوامر الوسيطة. في حالة Request HTTP PUT أو POSTs فإن البيانات المقدمة من قبل المستخدم تنتقل للبرنامج من خلال الإدخال النموذجي [3] خوادم الويب (web servers)غالبا ما يحتوون على مجلد للـ cgi-bin عند قاعدة شجرة المجلدات حتى تحمل الملفات القابلة للتنفيذ تسمى with CGI. البرنامج يقوم بإعادة النتيجة لخادم الويب في شكل المخرج القياسي، مسبوقة بالعنوان وسطر فارغ. شكل الرأسالرأس يتم ترميزه بنفس طريقة ترميز رأس HTML ويجب أن يشمل نوع الملف (MIME)العائد.[4] الرؤوس عموما يتم توجيهها مع الاستجابة اللاحقة إلى المستخدم، على أن يستكملها خادم الويب. العيوبفي حالة مناداة CGI يتعلق باستخدام لغة برمجة مثل csh أو بيرل(perl)، من الراجح أن أخطاء البرمجة تؤدي إلى (code injection) حقن الترميز المضعفّة. طلب أمر عموما يعني تنفيذ العملية التي أنشئت حديثا. بدء عملية يمكن ان يستغرق وقتا أطول بكثير وذاكرة أكثر من العمل الفعلي لخلق النواتج، وخصوصا عندما يظل البرنامج محتاجا إلى تفسير أو ترجمة. إذا كان البرنامج ينادى في كثير من الأحيان، يمكن لعبء العمل أن يزداد بسرعة على خوادم الشبكة. ومع ذلك، هذه الزيادة تكاد لا تذكر عند استخدام برامج واجهة المعابر المشتركة، مثل تلك الموجودة في لغة السي / لغة السي + +، ويظهر حقا عند استخدام لغة بيرل أو لغات البرمجة الأخرى مع واجهة المعابر العامة، وحتى ذلك الحين فقط على خوادم الشبكة التي تعاني من ارتفاع عبء العمل. البدائليمكن أن تتبنى العديد من الاتجاهات لمعالجة هذا :
التكوين الأمثل لأي تطبيق للشبكة يعتمد على تحديد تفاصيل التطبيق، حجم التحميل، وتعقيد المعاملات ؛ هذه المفاضلات بحاجة إلى تحليل لتحديد أفضل تنفيذ لمهمة معينة ولتحديد الوقت اللازم. المراجع
|