تجارة غير محدودة CGI التجارة الإلكترونية - ما هي؟ شبكة شركاء التجارة الإلكترونية هي برنامج تابع لأكبر المتاجر عبر الإنترنت. تثبيت CGI على ماكنتوش

التجارة الإلكترونية باللغة الروسية الواضحة. كيف تعمل الأعمال التجارية عبر الإنترنت؟

في الآونة الأخيرة، كان هناك المزيد والمزيد من المشاريع المتعلقة بالتداول عبر الإنترنت. أثناء دراسة هذا المجال، لم أتمكن من العثور على وصف عام ومفهوم للعملية. لذلك، قررت أن أصنع شيئًا مثل ورقة الغش التي يمكنك الرجوع إليها دائمًا لفهم الإجراء في مجال مثل التجارة الإلكترونية.

سأقوم على الفور بالحجز الذي ركزت فيه على العمليات والقنوات التي تساعد في جلب العملاء.

التجارة الإلكترونية: ما هو؟

التعريفات من مصادر مختلفة تقول شيئًا عن بيع السلع أو الخدمات عبر الإنترنت. بكلمات بسيطة، التجارة الإلكترونية هي أي نشاط عبر الإنترنت يظهر فيه المال.

التسوق، البيع، التأمين، الخدمات المصرفية، النقود الإلكترونية، كل شيء هنا. خذها وقم بالتوقيع عليها.

من الهدف

لكي نفهم الموضوع أقترح أن نبدأ المسار من النهاية. ما هو الهدف من أي عمل؟ هذا صحيح، كسب المال. لذلك، تخيل أي منتج، على سبيل المثال، جوارب السيليكون. ولم لا!

أخذت أول ما جاء في ذهني، اتضح أن هناك شيئًا كهذا...

مهمتنا هي كسب المال على هذه الجوارب. نحن نفكر في الإنترنت. حسنًا... لماذا لا تنشئ موقعًا إلكترونيًا وهذه هي الطريقة التي ستسير بها المبيعات، فقط احتفظ بي في جزر المالديف! لكن الأمر ليس بهذه البساطة.

أنا حقا أحب الرسم. وهذا يساعد على فهم العمليات المختلفة. هيا نرسم؟!

حتى الآن يبدو نموذجنا هكذا. نحن نأخذ الجوارب ونضعها على الإنترنت ونحصل على المال. هذا ببساطة عظيم! عيناك تحترقان وتعرق راحتا يديك وتريد بالفعل البدء في العمل. لكن هل تحتاج إلى إنشاء موقع ويب أو منصة مبيعات؟

موقع أو منصة للبيع

هناك حلول مختلفة لوضع منتجك على شبكة الويب العالمية. يمكنك إنشاء موقع الويب الخاص بك أو استخدام منصات الطرف الثالث (المجموعات والصفحات على الشبكات الاجتماعية ولوحات الرسائل وما إلى ذلك). دعونا نتوقف عند الموقع.

لقد طلبت موقعًا على شبكة الإنترنت، أو أخذت قالبًا جاهزًا، أو أنشأته بنفسك باستخدام أداة إنشاء مواقع الويب (يمكنك استخدام نظام إدارة المحتوى في Google)، فلا يهم. ثم وضعوا مجموعة من جوارب السيليكون بأنواعها المختلفة وكانوا سعداء.

آسف لمقاطعة القراءة. انضم إلى قناتي على التليجرام. إعلانات جديدة عن المقالات، وتطوير المنتجات الرقمية، واختراق النمو، كل هذا موجود. في انتظاركم! فلنكمل...

أنظمة الدفع

ولكن لكي يشتري شخص ما منك هنا والآن، سيكون من الضروري تعديل أنظمة الدفع. هذا نوع من الخدمة يتيح لك إجراء عمليات شراء عبر الإنترنت من خلال: البطاقات المصرفية وأموال الإنترنت والهواتف المحمولة ومجموعة من الأشياء الأخرى. لهذا سيتعين عليك مشاركة نسبة مئوية من المعاملات، ولكن بهذه الطريقة ستجعل حياتك أسهل بكثير.

اختر الخدمة التي تناسبك. في مكان ما ستكون النسبة أعلى، وفي مكان ما سيكون هناك اشتراك أو أي شيء آخر. فقط قم ببعض البحث. ضع الرمز المطلوب على موقع الويب الخاص بك، واربط جميع المعاملات بحساب بطاقتك وفويلا!

ويبدو أن هذا هو كل شيء. يوجد موقع ويب، وبطاقات المنتجات أيضًا، وحتى زر "شراء" يعمل، ولكن هناك شيئًا مفقودًا... لا يوجد تدفق للعملاء الذين سيشترون.

تدفقات العملاء

حيث: CAC = تكلفة الحصول على عميل جديد. MCC (تكاليف الحملة التسويقية) = التكلفة الإجمالية لنفقات التسويق التي تهدف إلى جذب العملاء (ولكن ليس الاحتفاظ بهم). W (الأجور) = الراتب للمسوقين ومديري المبيعات. S (البرمجيات) = تكلفة البرامج المستخدمة في الإعلان والمبيعات (على سبيل المثال، منصة المبيعات المستخدمة، وأتمتة التسويق، واختبار A/B، وخدمات التحليلات، وما إلى ذلك). PS (الخدمات المهنية) = تكلفة الخدمات المهنية المقدمة لأقسام التسويق والمبيعات (التصميم والاستشارات وما إلى ذلك). O (أخرى) = التكاليف العامة الأخرى المتعلقة بأقسام التسويق والمبيعات. CA (العملاء المكتسبون) = إجمالي عدد العملاء الذين تم جذبهم.

ولكن يجب ألا ننسى جودة العميل، حيث سيساعدنا LTV هنا.

مقاييس مهمة: القيمة الدائمة

تعد قيمة الوقت المباشر، وهي دورة حياة العميل، مؤشرًا آخر في التجارة الإلكترونية يجب أخذه بعين الاعتبار. إنه يوضح مقدار الدخل الذي يحققه عميل واحد في المتوسط. هناك طرق مختلفة للحساب، اخترت الطريقة الفعلية على أساس الربح، باعتبارها واحدة من أكثر الطرق دقة.

وهذا ببساطة هو مجموع إجمالي الإيرادات خلال سجل الشراء بالكامل لكل عميل على حدة. أضف مجموع جميع مشتريات العملاء (المعاملات) إلى المعاملة N، حيث تكون المعاملة N هي آخر عملية شراء قام بها العميل مع شركتك. إذا كان لديك حق الوصول إلى جميع بيانات معاملات العملاء، فيمكنك حساب ذلك بسهولة باستخدام برنامج Excel.

القيمة الدائمة = (المعاملة 1 + المعاملة 2 + المعاملة 3... + المعاملة ن) × حصة الربح في الإيرادات.

يُظهر حساب القيمة الدائمة (LTV) على أساس صافي الربح في النهاية الربح الفعلي الذي يجلبه العميل لشركتك. وهذا يأخذ في الاعتبار تكلفة خدمة العملاء، وتكلفة الاحتفاظ بهم، وتكلفة الجذب، وما إلى ذلك. والنتيجة هي مجموعة كاملة من الحسابات بناءً على البيانات الفردية. سيمنحك إجمالي الربح الناتج لكل عميل بمرور الوقت فهمًا دقيقًا لربحية عملائك حتى الآن.

يمكن العثور على طرق أخرى على.

مؤشرات مهمة: نسبة CAC وLTV

لفهم جدوى الأعمال التجارية، من المهم جدًا النظر إلى نسبة نسبتي CAC:LTV المذكورتين.

  • أقل من 1:1 - أنت تندفع بأقصى سرعة نحو الإفلاس.
  • 1:1 – تخسر المال على كل عميل تنجذب إليه.
  • 1:2 – يبدو الأمر جيدًا، ولكن يبدو أنك لا تستثمر ما يكفي من المال، ويمكنك التطور بشكل أسرع. إطلاق حملات أكثر جرأة لجذب العملاء وتحقيق معدلات قريبة من 1:3.
  • 1:3 - النسبة المثالية. لديك عمل مزدهر ونموذج عمل قوي.

مؤشرات مهمة: لا تنسى عائد الاستثمار

كما ناقشنا أعلاه، في التجارة الإلكترونية، عليك أن تفهم بوضوح ما إذا كان من المربح استخدام قناة الاستحواذ أم لا. بالإضافة إلى LTV وCAC، هناك مؤشر مهم آخر: العائد على الاستثمار. إنه يوضح ما إذا كان استثمارك، في حالتنا في الإعلان، قد أتى بثماره. إنه. كم جلب لنا الروبل المستثمر في النهاية.

يتم استخدام صيغة بسيطة جدًا للحساب:

حيث "إيرادات الحملة" هي الفرق بين الدخل من القناة وتكلفة منتجك. ولحساب الربح، اطرح تكاليف الإعلان.

وبالتالي، فإن الصيغة الأكثر تفصيلاً ستبدو كما يلي:

عائد الاستثمار = (إيرادات القناة – التكلفة) – مصاريف الإعلان / مصاريف الإعلان × 100%

اقرأ مثالًا أكثر تفصيلاً مع الحساب. في الواقع، يتم وضع هذه الصيغة البسيطة في نفس جدول Excel، حيث يتم حساب كل شيء تلقائيًا.

جميع المؤشرات الثلاثة التي ناقشناها مهمة في التجارة الإلكترونية. يسمح لك كل واحد منهم بالعثور على الاختناقات في تدفقاتك والعمل معها. هذا هو المكان الذي تكمن فيه إمكانات النمو للأعمال التجارية. أضفت المزيد إلى نموذجنا مع الجوارب.

من المستحيل أن نجمع كل شيء في مادة واحدة، ومن سيقرأها لفترة طويلة؟ سأقوم لاحقًا بإعداد دليل منفصل حول الفروق الدقيقة في التجارة الإلكترونية التي يمكن أن تتداخل مع المبيعات.

المجموع

بشكل عام، لديك الآن فهم عام للتداول عبر الإنترنت أو التجارة الإلكترونية. وكما يقولون: "الشيطان يكمن في التفاصيل". ادرس كل قناة على حدة، واحسب مؤشرات الأداء وابحث عن رؤى جديدة في الأشياء الصغيرة. مبيعات الإنترنت بالنسبة لك، وأكثر! ولدي مادة أخرى.

نعم، كدت أنسى، سنة جديدة سعيدة أيها القراء الأعزاء! أتمنى لك انتصارات وإنجازات عظيمة في العام المقبل!

أندوفر، ماساتشوستس، 19 نوفمبر 2003

المجموعة التجارية، وشركة (رمزها في بورصة نيويورك: CGI)، أكبر كاتب للتأمين على سيارات الركاب الخاصة في ماساتشوستس وشركة CGI Group Inc. (CGI) (TSX: GIB.A؛ NYSE: GIB؛)، الشركة الرائدة في مجال توفير تكنولوجيا المعلومات وخدمات معالجة الأعمال، اليوم عن توقيع تجديد عقد الاستعانة بمصادر خارجية للعمليات التجارية (BPO) لمدة ست سنوات بقيمة 35 مليون دولار أمريكي. ستوفر CGI خدمات معالجة السياسات الكاملة لخطوط الركاب الخاصة والسيارات التجارية في ماساتشوستس بالإضافة إلى توفير أداة واجهة وكالة CollaborativeEdge التابعة لـ CGI ودعم التطبيقات والصيانة والدعم التنظيمي واستشارات الأنظمة وخدمات إدارة المستندات.

صرح جيرالد فيلس، نائب الرئيس التنفيذي والمدير المالي لمجموعة التجارة: "باعتبارنا المزود الرائد لسيارات الركاب الخاصة في ماساتشوستس، فإن هدفنا هو تزويد وكلائنا وموظفينا بالخدمات التي تساعدهم على الأداء إلى أعلى مستوياتهم. على مر السنين قمنا بتعزيز علاقة قوية مع CGI. نظامهم قوي ودقيق وفريقهم على دراية بأنظمة المعالجة الداخلية لدينا. وهذا مهم بالنسبة لنا".

وأضاف سيرج لابالم، رئيس خدمات أعمال التأمين لشركة CGI: "يسعدنا جدًا أن نواصل علاقتنا مع Commerce Group، وهي علاقة تمتد لأكثر من 30 عامًا. لا تزال Commerce Group واحدة من شركاء الأعمال الكرام لدينا وهي استراتيجية بالنسبة لنا. نجاحنا. ومن خلال مساعدة عملائنا على التركيز بشكل أكبر على أعمالهم الأساسية، فإننا نستفيد من التقنيات الجديدة متى وأينما كان ذلك منطقيًا. يعرف فريقنا صناعة التأمين والبيئة التنظيمية الفريدة للغاية في الولاية بشكل وثيق، ونتيجة لذلك فهم سريعون لتكييف الحلول الحالية مع هذا القطاع المتطور باستمرار."

حول مجموعة التجارة، وشركة

يقع المقر الرئيسي لشركة Commerce Group, Inc.، وهي شركة تأمين قابضة، في ويبستر، ماساتشوستس. تشمل الشركات التابعة للتأمين على الممتلكات والحوادث التابعة لشركة Commerce Group شركة Commerce Insurance وشركة Citation Insurance Company في ماساتشوستس، وشركة Commerce West للتأمين في كاليفورنيا وشركة American Commerce Insurance Company في أوهايو. ومن خلال أنشطة التأمين المجمعة للشركات التابعة لها، تم تصنيف Commerce Group في المرتبة الثانية والعشرين. أكبر مجموعة تأمين شخصية على السيارات في البلاد من قبل A.M. الأفضل، استنادًا إلى معلومات متميزة مكتوبة مباشرة لعام 2002.

حول CGI
تأسست شركة CGI في عام 1976، وهي خامس أكبر شركة مستقلة لخدمات تكنولوجيا المعلومات في أمريكا الشمالية، بناءً على عدد موظفيها. توظف CGI والشركات التابعة لها 20000 متخصص. يبلغ معدل تشغيل إيرادات CGI السنوي حاليًا 2.8 مليار دولار كندي (1.9 مليار دولار أمريكي) وفي 30 سبتمبر 2003، بلغ تراكم طلبات CGI 12.3 مليار دولار كندي (9.1 مليار دولار أمريكي). توفر CGI خدمات تكنولوجيا المعلومات وعمليات الأعمال الشاملة للعملاء في جميع أنحاء العالم من مكاتب في كندا والولايات المتحدة وأوروبا. أسهم CGI مدرجة في بورصة TSX (GIB.A) وبورصة نيويورك (GIB) وهي مدرجة في مؤشر TSX 100 المركب بالإضافة إلى مؤشر S&P/TSX الكندي لتكنولوجيا المعلومات ومؤشرات MidCap الكندية.

2012: شراء شركة Logica البريطانية

في يونيو 2012، أعلنت مجموعة CGI أنها وقعت اتفاقية لشراء أكبر شركة أوروبية لتكامل الأنظمة Logica. وتبلغ قيمة الصفقة 2.8 مليار دولار كندي (2.7 مليار دولار). وكجزء من الاتفاقيات التي تم التوصل إليها، وافقت CGI أيضًا على تحمل التزامات سداد ديون Logica بمبلغ 515 مليون دولار كندي.

لتمويل الصفقة، تخطط CGI لجمع مليار دولار كندي عن طريق إصدار 46.7 مليون سهم إضافي، واقتراض 2 مليار دولار كندي من البنك الإمبراطوري الكندي للتجارة، والبنك الوطني الكندي وبنك تورونتو دومينيون، وحوالي 650 مليون كندي. دولار أكثر دولار - ضمن حد الائتمان الحالي.

كان السعر المقترح للسهم أعلى بنسبة 59.8٪ من سعر إغلاق Logica في 30 مايو 2012. وتمثل الصفقة ما يقرب من 6.6 أضعاف أرباح Logica قبل الفوائد والضرائب والإهلاك والإطفاء (EBITDA) للسنة.فترة 12 شهرًا المنتهية في 31 ديسمبر 2011

من المتوقع أن يؤدي الاستحواذ على Logica إلى تعزيز أرباح سهم CGI بنسبة 25% إلى 30%، باستثناء تكاليف الاستحواذ والتكامل. ونتيجة لعملية الدمج، فإن القوى العاملة للشركة الناتجة والإيرادات السنوية ستكون أكثر من ضعف تلك الخاصة بـ CGI. وسيبلغ حجم موظفي الشركة المندمجة حوالي 72 ألف موظف موزعين على مكاتب في 43 دولة، وستبلغ الإيرادات السنوية حوالي 10.4 مليار دولار كندي (9.6 مليار دولار).

وستكون الشركة الجديدة سادس أكبر شركة استشارية في مجال تكنولوجيا المعلومات في العالم. وأكبر هذه الشركات هي آي بي إم، وأكسنتشر، وكاب جيميني، وتاتا للاستشارات، وإنفوسيس، وفقا لتقديرات رويترز.

وقال مايكل روتش، الرئيس والمدير التنفيذي لشركة CGI: "Logica هي شركة رائدة في مجال خدمات الأعمال والتكنولوجيا ولديها محترفون متخصصون وعملاء موثوق بهم على المدى الطويل. نحن واثقون من أننا نفعل الشيء الصحيح." من خلال الاستحواذ على Logica، فإننا نستحوذ عليها بالسعر المناسب وفي الوقت المناسب لإنشاء واحدة من أكبر الشركات المستقلة القليلة التي تقدم خدمات التكنولوجيا الشاملة."

وافق مجلس إدارة CGI بالإجماع على الصفقة. ومن المقرر أن يتم الانتهاء منه بحلول سبتمبر 2012، بعد الحصول على موافقة المساهمين واتباع الإجراءات القياسية. ومن المقرر أن تكتمل عملية تكامل الشركة في غضون 3 سنوات

بفضل شبكة الويب العالمية، يمكن لأي شخص تقريبًا تقديم المعلومات عبر الإنترنت بشكل يسهل على العين ويمكن نشره على نطاق واسع. لا شك أنك قد تصفحت الإنترنت وشاهدت مواقع أخرى، والآن ربما تعلم أن الاختصارات المخيفة مثل "HTTP" و"HTML" هي ببساطة اختصار لـ "Web" و"طريقة التعبير عن المعلومات على الإنترنت". قد تكون لديك بالفعل بعض الخبرة في تقديم المعلومات على الإنترنت.

لقد أثبتت شبكة الإنترنت أنها وسيلة مثالية لتوزيع المعلومات، كما يتبين من شعبيتها الهائلة وتطورها الواسع النطاق. على الرغم من أن البعض شكك في فائدة الإنترنت ويعزو تطورها الواسع وشعبيتها بشكل أساسي إلى الإعلانات المتطفلة، إلا أن الإنترنت بلا شك وسيلة مهمة لتقديم جميع أنواع المعلومات. لا يقتصر الأمر على توفر العديد من الخدمات المتاحة لتوفير أحدث المعلومات (الأخبار، والطقس، والأحداث الرياضية الحية) والمواد المرجعية إلكترونيًا فحسب، بل هناك أيضًا كميات كبيرة من الأنواع الأخرى من البيانات المتاحة. واعترفت مصلحة الضرائب، التي وزعت كافة نماذج الإقرارات الضريبية وغيرها من المعلومات الخاصة بها في عام 1995 عبر شبكة الإنترنت العالمية، مؤخراً بتلقي رسائل من المعجبين لموقعها على شبكة الإنترنت. من كان يظن أن مصلحة الضرائب الأمريكية ستتلقى بريدًا من المعجبين؟ ولم يكن ذلك بسبب تصميم موقعه بشكل جيد، ولكن لأنه أثبت أنه أداة مفيدة حقًا للآلاف، وربما الملايين، من الأشخاص.

ما الذي يجعل الويب خدمة معلومات فريدة وجذابة؟ أولاً وقبل كل شيء، فهو يوفر واجهة الوسائط التشعبية للبيانات. فكر في القرص الصلب لجهاز الكمبيوتر الخاص بك. عادة، يتم التعبير عن البيانات بطريقة خطية، على غرار نظام الملفات. على سبيل المثال، لديك عدد من المجلدات، ويوجد داخل كل مجلد إما مستندات أو مجلدات أخرى. يستخدم الويب نموذجًا مختلفًا للتعبير عن المعلومات يسمى الوسائط التشعبية. تتكون واجهة النص التشعبي من مستند وروابط. الروابط هي كلمات يتم النقر عليها لرؤية مستندات أخرى أو البحث عن أنواع أخرى من المعلومات. يقوم الويب بتوسيع مفهوم النص التشعبي ليشمل أنواعًا أخرى من الوسائط، مثل الرسومات والأصوات والفيديو (ومن هنا جاء اسم "الوسائط التشعبية"). يتيح لك تحديد النص أو الرسومات في المستند رؤية المعلومات ذات الصلة حول العنصر المحدد في أي عدد من النماذج.

يمكن للجميع تقريبًا الاستفادة من هذه الطريقة البسيطة والفريدة من نوعها لعرض المعلومات وتوزيعها، بدءًا من الأكاديميين الذين يرغبون في استخدام البيانات على الفور مع زملائهم وحتى رجال الأعمال الذين يشاركون المعلومات حول شركاتهم مع الجميع. ومع ذلك، على الرغم من أن إعطاء المعلومات أمر في غاية الأهمية، فقد شعر الكثيرون في السنوات القليلة الماضية أن تلقي المعلومات هو عملية لا تقل أهمية.

على الرغم من أن الويب يوفر واجهة وسائط تشعبية فريدة للمعلومات، إلا أن هناك العديد من الطرق الفعالة الأخرى لتوزيع البيانات. على سبيل المثال، كانت خدمات الشبكة مثل بروتوكول نقل الملفات (FTP) ومجموعة أخبار Gopher موجودة قبل فترة طويلة من ظهور شبكة الويب العالمية. لقد كان البريد الإلكتروني هو الوسيلة الأساسية للاتصال وتبادل المعلومات على الإنترنت ومعظم الشبكات الأخرى تقريبًا منذ بداية هذه الشبكات. لماذا أصبح الإنترنت وسيلة شائعة لتوزيع المعلومات؟ لقد ساهم جانب الوسائط المتعددة للإنترنت بشكل كبير في نجاحها غير المسبوق، ولكن لكي تكون الإنترنت أكثر فعالية، يجب أن تكون تفاعلية.

وبدون القدرة على تلقي مدخلات المستخدم وتوفير المعلومات، ستكون الويب بيئة ثابتة تمامًا. لن تكون المعلومات متاحة إلا بالتنسيق الذي حدده المؤلف. وهذا من شأنه أن يقوض إحدى قدرات الحوسبة بشكل عام: المعلومات التفاعلية. على سبيل المثال، بدلاً من إجبار المستخدم على عرض مستندات متعددة كما لو كان يبحث في كتاب أو قاموس، سيكون من الأفضل السماح للمستخدم بتحديد الكلمات الرئيسية حول موضوع محل اهتمام. يمكن للمستخدمين تخصيص عرض البيانات بدلاً من الاعتماد على بنية صارمة يحددها موفر المحتوى.

يمكن أن يكون مصطلح "خادم الويب" مضللاً لأنه يمكن أن يشير إلى كل من الجهاز الفعلي والبرنامج الذي يستخدمه للاتصال بمتصفحات الإنترنت. عندما يطلب المتصفح عنوان ويب معين، فإنه يتصل أولاً بالجهاز عبر الإنترنت، ويرسل إلى برنامج خادم الويب طلبًا للحصول على المستند. يعمل هذا البرنامج بشكل مستمر، في انتظار وصول مثل هذه الطلبات والاستجابة وفقًا لذلك.

على الرغم من أن الخوادم يمكنها إرسال البيانات واستقبالها، إلا أن الخادم نفسه لديه وظائف محدودة. على سبيل المثال، يمكن للخادم الأكثر بدائية إرسال الملف المطلوب فقط إلى المتصفح. عادةً لا يعرف الخادم ما يجب فعله بهذا الإدخال الإضافي أو ذاك. إذا لم يخبر مزود خدمة الإنترنت الخادم بكيفية التعامل مع هذه المعلومات الإضافية، فمن المرجح أن يتجاهل الخادم الإدخال.

لكي يتمكن الخادم من إجراء عمليات أخرى إلى جانب البحث عن الملفات وإرسالها إلى متصفح الإنترنت، يجب عليك معرفة كيفية توسيع وظائف الخادم. على سبيل المثال، لا يمكن لخادم الويب البحث في قاعدة بيانات بناءً على كلمة أساسية أدخلها المستخدم وإرجاع عدة مستندات مطابقة ما لم تتم برمجة هذه الإمكانية في الخادم بطريقة ما.

ما هو CGI؟

واجهة البوابة العامة (CGI) هي واجهة للخادم تسمح لك بتوسيع وظائف الخادم. باستخدام CGI، يمكنك التفاعل بشكل تفاعلي مع المستخدمين الذين يصلون إلى موقعك. على المستوى النظري، تسمح CGI للخادم بأن يكون قادرًا على تحليل (تفسير) المدخلات من المتصفح وإرجاع المعلومات بناءً على مدخلات المستخدم. على المستوى العملي، تعد CGI واجهة تسمح للمبرمج بكتابة برامج تتواصل بسهولة مع الخادم.

عادةً، لتوسيع إمكانيات الخادم، يجب عليك تعديل الخادم بنفسك. هذا الحل غير مرغوب فيه لأنه يتطلب فهم الطبقة السفلية من برمجة شبكة بروتوكول الإنترنت. قد يتطلب هذا أيضًا تحرير الكود المصدري للخادم وإعادة ترجمته أو كتابة خادم مخصص لكل مهمة. لنفترض أنك تريد توسيع إمكانيات الخادم بحيث يعمل كبوابة من الويب إلى البريد الإلكتروني، حيث يأخذ المعلومات التي يدخلها المستخدم من المتصفح ويرسلها بالبريد الإلكتروني إلى مستخدم آخر. سيتعين على الخادم إدخال رمز لتحليل الإدخال من المتصفح، وإعادة توجيهه عبر البريد الإلكتروني إلى المستخدم الآخر، وإعادة توجيه الاستجابة مرة أخرى إلى المتصفح عبر اتصال الشبكة.

أولا، تتطلب هذه المهمة الوصول إلى رمز الخادم، وهو أمر غير ممكن دائما.

ثانيا، إنه أمر صعب ويتطلب معرفة فنية واسعة النطاق.

ثالثًا، ينطبق هذا فقط على خادم معين. إذا كنت بحاجة إلى نقل خادمك إلى منصة أخرى، فسيتعين عليك تشغيل أو على الأقل قضاء الكثير من الوقت في نقل التعليمات البرمجية إلى تلك المنصة.

لماذا CGI؟

تقدم CGI حلاً محمولاً وبسيطًا لهذه المشكلات. يحدد بروتوكول CGI طريقة قياسية لتواصل البرامج مع خادم الويب. بدون أي معرفة خاصة، يمكنك كتابة برنامج بأي لغة آلة تتعامل مع خادم الويب وتتواصل معه. سيعمل هذا البرنامج مع جميع خوادم الويب التي تفهم بروتوكول CGI.

يتم إجراء اتصال CGI باستخدام الإدخال والإخراج القياسي، مما يعني أنه إذا كنت تعرف كيفية طباعة وقراءة البيانات باستخدام لغة البرمجة الخاصة بك، فيمكنك كتابة تطبيق خادم الويب. بصرف النظر عن تحليل المدخلات والمخرجات، فإن برمجة تطبيقات CGI تعادل تقريبًا برمجة أي تطبيق آخر. على سبيل المثال، لبرمجة برنامج "Hello, World!"، يمكنك استخدام وظائف الطباعة الخاصة بلغتك والتنسيق المحدد لبرامج CGI لطباعة الرسالة المقابلة.

اختيار لغة البرمجة

نظرًا لأن CGI هي واجهة عالمية، فأنت لست مقيدًا بأي لغة آلة محددة. السؤال المهم الذي يتم طرحه كثيرًا هو: ما هي لغات البرمجة التي يمكن استخدامها لبرمجة CGI؟ يمكنك استخدام أي لغة تتيح لك القيام بما يلي:

  • الطباعة إلى الإخراج القياسي
  • القراءة من المدخلات القياسية
  • القراءة من الأوضاع المتغيرة

تقريبًا جميع لغات البرمجة والعديد من لغات البرمجة النصية تقوم بهذه الأشياء الثلاثة، ويمكنك استخدام أي منها.

تندرج اللغات ضمن إحدى الفئتين التاليتين: المترجمة والمفسرة. عادةً ما تكون اللغة المترجمة مثل C أو C++ أصغر حجمًا وأسرع، بينما تتطلب اللغات المترجمة مثل Perl أو Rexx أحيانًا تحميل مترجم كبير عند بدء التشغيل. بالإضافة إلى ذلك، يمكنك توزيع الرموز الثنائية (الكود الذي يُترجم إلى لغة الآلة) بدون كود المصدر إذا كانت لغتك قابلة للترجمة. عادةً ما يعني توزيع البرامج النصية القابلة للتفسير توزيع التعليمات البرمجية المصدر.

قبل اختيار اللغة، عليك أولاً أن تفكر في أولوياتك. أنت بحاجة إلى الموازنة بين فوائد سرعة وكفاءة إحدى لغات البرمجة مقابل سهولة برمجة لغة أخرى. إذا كانت لديك الرغبة في تعلم لغة أخرى، فبدلاً من استخدام اللغة التي تعرفها بالفعل، قم بوزن مزايا وعيوب كلتا اللغتين بعناية.

اللغتان الأكثر استخدامًا لبرمجة CGI هما C وPerl (كلاهما مذكور في هذا الكتاب). كلاهما لهما مزايا وعيوب واضحة. تعد لغة Perl لغة عالية المستوى جدًا، وفي نفس الوقت لغة قوية، ومناسبة بشكل خاص لتحليل النص. على الرغم من أن سهولة استخدامها ومرونتها وقوتها تجعلها لغة جذابة لبرمجة CGI، إلا أن حجمها الكبير نسبيًا وتشغيلها الأبطأ يجعلها أحيانًا غير مناسبة لبعض التطبيقات. برامج C أصغر حجمًا وأكثر كفاءة وتوفر تحكمًا منخفض المستوى في النظام، ولكنها أكثر تعقيدًا في البرمجة، ولا تحتوي على إجراءات معالجة نصية مدمجة خفيفة الوزن، كما أن تصحيح أخطائها أكثر صعوبة.

ما هي اللغة الأكثر ملاءمة لبرمجة CGI؟ الذي تعتبره أكثر ملاءمة من وجهة نظر البرمجة. كلاهما متساويان في الفعالية لبرمجة تطبيقات CGI، ومع المكتبات المناسبة، يتمتع كلاهما بقدرات مماثلة. ومع ذلك، إذا كان لديك خادم يصعب الوصول إليه، فيمكنك استخدام برامج مترجمة أصغر حجمًا بلغة C. إذا كنت بحاجة إلى كتابة تطبيق يتطلب الكثير من أعمال معالجة النصوص بسرعة، فيمكنك استخدام Perl بدلاً من ذلك.

يحذر

هناك بعض البدائل المهمة لتطبيقات CGI. تتضمن العديد من الخوادم الآن برمجة API، مما يجعل من السهل برمجة ملحقات الخادم المباشرة بدلاً من تطبيقات CGI المستقلة. تعد خوادم API بشكل عام أكثر كفاءة من برامج CGI. تشتمل الخوادم الأخرى على وظائف مدمجة يمكنها التعامل مع عناصر خاصة غير تابعة لـ CGI، مثل ربط قاعدة البيانات. أخيرًا، يمكن التعامل مع بعض التطبيقات من خلال بعض التقنيات الجديدة من جانب العميل (بدلاً من جانب الخادم) مثل Java. مع هذه التغيرات السريعة في التكنولوجيا، هل ستصبح الصور المولدة بواسطة الكمبيوتر (CGI) قديمة الطراز بسرعة؟

بالكاد. تتمتع CGI بالعديد من المزايا مقارنة بالتقنيات الأحدث.

  • إنها متعددة الاستخدامات ومحمولة. يمكنك كتابة تطبيق CGI باستخدام أي لغة برمجة تقريبًا على أي نظام أساسي. بعض البدائل، مثل واجهة برمجة تطبيقات الخادم، تقيدك بلغات معينة ويكون تعلمها أكثر صعوبة.
  • من غير المحتمل أن تحل التقنيات من جانب العميل، مثل Java، محل CGI، نظرًا لوجود بعض التطبيقات التي تعد التطبيقات من جانب الخادم أكثر ملاءمة لتشغيلها.
  • العديد من قيود CGI هي قيود HTML أو HTTP. مع تطور معايير الإنترنت ككل، تتطور أيضًا قدرات CGI.

ملخص

واجهة البوابة العامة هي البروتوكول الذي تتفاعل البرامج من خلاله مع خوادم الويب. إن تعدد استخدامات CGI يمنح المبرمجين القدرة على كتابة برامج البوابة بأي لغة تقريبًا، على الرغم من وجود العديد من المقايضات المرتبطة بلغات مختلفة. بدون هذه القدرة، سيكون إنشاء صفحات ويب تفاعلية أمرًا صعبًا، وفي أفضل الأحوال يتطلب إجراء تعديلات على الخادم، ولن تكون التفاعلية متاحة لمعظم المستخدمين الذين ليسوا مسؤولين عن الموقع.

الفصل الثاني: الأساسيات

منذ عدة سنوات، قمت بإنشاء صفحة لكلية في جامعة هارفارد حيث يمكن للأشخاص تقديم تعليقات عنها. في ذلك الوقت، كانت شبكة الإنترنت حديثة العهد وكانت الوثائق نادرة. أنا، مثل كثيرين آخرين، اعتمدت على التوثيق القصير وأنظمة البرمجة التي أنشأها الآخرون لتعليم نفسي برمجة CGI. ورغم أن هذه الطريقة في الدراسة كانت تتطلب بعض البحث، والعديد من التجارب، وتثير العديد من الأسئلة، إلا أنها كانت فعالة للغاية. هذا الفصل هو نتيجة عملي المبكر مع CGI (مع بعض التعديلات بالطبع).

على الرغم من أن الأمر يستغرق بعض الوقت لفهم واجهة البوابة المشتركة وإتقانها بشكل كامل، إلا أن البروتوكول نفسه بسيط للغاية. يمكن لأي شخص لديه بعض مهارات البرمجة الأساسية وعلى دراية بالويب أن يتعلم بسرعة برمجة تطبيقات CGI المعقدة تمامًا كما تعلمت أنا وآخرون منذ عدة سنوات.

الغرض من هذا الفصل هو تقديم أساسيات CGI بطريقة شاملة، وإن كانت مكثفة. يتم عرض كل مفهوم تمت مناقشته هنا بالتفصيل في الفصول اللاحقة. ومع ذلك، بعد الانتهاء من هذا الفصل، يمكنك البدء فورًا في برمجة تطبيقات CGI. بمجرد وصولك إلى هذا المستوى، يمكنك معرفة تعقيدات CGI، إما عن طريق قراءة بقية هذا الكتاب أو ببساطة التجربة بنفسك.

يمكنك تلخيص برمجة CGI في مهمتين: تلقي المعلومات من متصفح الويب وإرسال المعلومات مرة أخرى إلى المتصفح. يتم ذلك بشكل حدسي تمامًا بمجرد أن تعتاد على الاستخدام العادي لتطبيقات CGI. في كثير من الأحيان يطلب من المستخدم ملء بعض النموذج، على سبيل المثال، أدخل اسمه. بمجرد قيام المستخدم بملء النموذج والضغط على Enter، يتم إرسال هذه المعلومات إلى برنامج CGI. يجب على برنامج CGI بعد ذلك تحويل هذه المعلومات إلى شيء يفهمه، ومعالجتها وفقًا لذلك، ثم إرسالها مرة أخرى إلى المتصفح، سواء كان ذلك تأكيدًا بسيطًا أو نتيجة بحث في قاعدة بيانات متعددة الأغراض.

بمعنى آخر، تتطلب برمجة CGI فهم كيفية تلقي المدخلات من متصفح الإنترنت وكيفية إرسال المخرجات مرة أخرى. ما يحدث بين مراحل الإدخال والإخراج لبرنامج CGI يعتمد على هدف المطور. ستجد أن الصعوبة الرئيسية في برمجة CGI تكمن في هذه المرحلة المتوسطة؛ بمجرد أن تتعلم كيفية التعامل مع المدخلات والمخرجات، فهذا يكفي لتصبح مطور CGI.

في هذا الفصل، ستتعلم المبادئ وراء إدخال وإخراج CGI، بالإضافة إلى المهارات الأساسية الأخرى التي ستحتاجها لكتابة واستخدام CGI، بما في ذلك أشياء مثل إنشاء نماذج HTML وتسمية برامج CGI الخاصة بك. ويشمل هذا الفصل الموضوعات التالية:

  • البرنامج التقليدي "مرحبا بالعالم!"؛
  • إخراج CGI: إرسال المعلومات مرة أخرى لعرضها في متصفح الإنترنت؛
  • تكوين التطبيق وتثبيته وتشغيله. سوف تتعلم عن منصات وخوادم الويب المختلفة؛
  • إدخال CGI: تفسير المعلومات المرسلة بواسطة متصفح الويب. مقدمة لبعض مكتبات البرمجة المفيدة لتحليل هذه المدخلات؛
  • مثال بسيط: يغطي جميع الدروس في فصل معين؛
  • استراتيجية البرمجة.

ونظرًا لطبيعة هذا الفصل، فإنني أتطرق بشكل طفيف فقط إلى بعض المواضيع. لا تقلق؛ يتم تناول كل هذه المواضيع بتعمق أكبر في فصول أخرى.

مرحبا بالعالم!

عليك أن تبدأ بمشكلة برمجة تمهيدية تقليدية. ستكتب برنامجًا يعرض عبارة "Hello, World!" على متصفح الويب الخاص بك. قبل أن تكتب هذا البرنامج، يجب أن تفهم المعلومات التي يتوقع متصفح الويب تلقيها من برامج CGI. تحتاج أيضًا إلى معرفة كيفية تشغيل هذا البرنامج حتى تتمكن من رؤيته أثناء العمل.

CGI مستقلة عن اللغة، لذا يمكنك تنفيذ هذا البرنامج بأي لغة. يتم استخدام عدة لغات مختلفة هنا لإثبات استقلالية كل لغة. في بيرل، برنامج "Hello, World!" مبين في القائمة 2.1.

القائمة 2.1. مرحبا بالعالم! في بيرل. #!/usr/local/bin/perl # Hello.cgi - أول برنامج CGI يطبع "Content-Type: text/html\n\n"; مطبعة " \n"; طباعة " مرحبا بالعالم!"؛ مطبعة "\n"; طباعة " \n"; طباعة "

مرحبا بالعالم!

\n"; طباعة "

\ن"؛

احفظ هذا البرنامج باسم hello.cgi، ثم قم بتثبيته في الموقع المناسب. (إذا لم تكن متأكدًا من مكانه، فلا تقلق؛ ستكتشف ذلك في قسم "تثبيت وتشغيل برنامج CGI" لاحقًا في هذا الفصل.) بالنسبة لمعظم الخوادم، فإن الدليل الذي تحتاجه هو cgi-bin . الآن، اتصل بالبرنامج من متصفح الويب الخاص بك. بالنسبة لمعظم الناس، يعني هذا فتح محدد موقع الموارد الموحد (URL) التالي:

http://hostname/directoryname/hello.cgi

اسم المضيف هو اسم خادم الويب الخاص بك، واسم الدليل هو الدليل الذي تضع فيه hello.cgi (ربما cgi-bin).

تقسيم hello.cgi

هناك بعض الأشياء التي يجب ملاحظتها حول hello.cgi.

أولا، يمكنك استخدام أوامر الطباعة البسيطة. لا تتطلب برامج CGI أي واصفات ملفات خاصة أو واصفات مخرجات. لإرسال المخرجات إلى المتصفح، ما عليك سوى الطباعة إلى stdout.

ثانيًا، لاحظ أن محتوى بيان الطباعة الأول (نوع المحتوى: نص/html) لا يظهر على متصفح الويب الخاص بك. يمكنك إرسال أي معلومات تريدها مرة أخرى إلى المتصفح (صفحة HTML أو الرسومات أو الصوت)، ولكن عليك أولاً إخبار المتصفح بنوع البيانات التي ترسلها. يخبر هذا السطر المتصفح بنوع المعلومات التي يتوقعها - في هذه الحالة، صفحة HTML.

ثالثا البرنامج اسمه hello.cgi. لا تحتاج دائمًا إلى استخدام الامتداد .cgi مع اسم برنامج CGI الخاص بك. على الرغم من أن التعليمات البرمجية المصدر للعديد من اللغات تستخدم أيضًا الامتداد .cgi، إلا أنها لا تستخدم للإشارة إلى نوع اللغة، ولكنها طريقة يتعرف بها الخادم على الملف كملف قابل للتنفيذ بدلاً من ملف رسومات أو ملف HTML أو ملف نصي. غالبًا ما يتم تكوين الخوادم لمحاولة تنفيذ تلك الملفات التي لها هذا الامتداد فقط، مع عرض محتويات جميع الملفات الأخرى. على الرغم من أن استخدام الامتداد .cgi ليس مطلوبًا، إلا أنه لا يزال يعتبر ممارسة جيدة.

بشكل عام، يتكون hello.cgi من جزأين رئيسيين:

  • يخبر المتصفح بالمعلومات التي يتوقعها (نوع المحتوى: نص/html)
  • يخبر المتصفح بما سيتم عرضه (Hello, World!)

مرحبا بالعالم! شركة

لإظهار الاستقلال اللغوي لبرامج CGI، توضح القائمة 2.2 ما يعادل برنامج hello.cgi المكتوب بلغة C.

القائمة 2.2. مرحبا بالعالم! في C. /* hello.cgi.c - مرحبًا، World CGI */ #include int main() ( printf("نوع المحتوى: نص/html\r\n\r\n"); printf(" \n"); برينتف(" مرحبا بالعالم!\n"); برينتف("\n"); برينتف(" \n"); برينتف("

مرحبا بالعالم!

\n"); برينتف("

\ن")؛ )

ملحوظة

لاحظ أن إصدار Perl من hello.cgi يستخدم Content-Type print ": text/html\n\n "; بينما يستخدم الإصدار C Printf("Content-Type: text/html\r\n\r\n");

لماذا يطبع Perl عامل التشغيل ينتهي بسطرين جديدين (\n) بينما ينتهي C printf بسطرين جديدين وسطرين جديدين (\r\n)؟

من الناحية الفنية، من المتوقع أن يتم فصل الرؤوس (جميع المخرجات قبل السطر الفارغ) بأحرف إرجاع وأسطر جديدة. لسوء الحظ، على أجهزة DOS وWindows، يقوم Perl بترجمة \r كسطر جديد آخر بدلاً من أن يكون حرف إرجاع.

على الرغم من أن استثناء ‎\rs الخاص بـ Perl غير صحيح من الناحية الفنية، إلا أنه سيعمل على جميع البروتوكولات تقريبًا كما أنه قابل للنقل عبر كافة الأنظمة الأساسية. لذلك، في جميع أمثلة Perl في هذا الكتاب، أستخدم رؤوس فصل الأسطر الجديدة بدلاً من إرجاع السطر الجديد والأسطر الجديدة.

ويرد الحل المناسب لهذه المشكلة في الفصل الرابع، الخاتمة.

لا يهتم خادم الويب ولا المتصفح باللغة المستخدمة لكتابة البرنامج. على الرغم من أن كل لغة لها مزايا وعيوب كلغة برمجة CGI، فمن الأفضل استخدام اللغة التي تشعر براحة أكبر في العمل بها. (تتم مناقشة اختيار لغة البرمجة بمزيد من التفصيل في الفصل الأول، "واجهة البوابة العامة (CGI)").

تقديم CGI

يمكنك الآن إلقاء نظرة فاحصة على مسألة إرسال المعلومات إلى متصفح الويب. من المثال "Hello, World!"، يمكنك أن ترى أن متصفحات الويب تتوقع مجموعتين من البيانات: رأس يحتوي على معلومات مثل المعلومات التي سيتم عرضها (على سبيل المثال، نوع المحتوى: سطر) والمعلومات الفعلية (ما هو متصفح الويب يعرض). ويتم فصل هاتين المعلومتين بسطر فارغ.

يسمى الرأس رأس HTTP. فهو يوفر معلومات مهمة حول المعلومات التي سيتلقاها المتصفح. هناك عدة أنواع مختلفة من رؤوس HTTP، وأكثرها شيوعًا هو النوع الذي استخدمته من قبل: Content-Type: header. يمكنك استخدام مجموعات مختلفة من رؤوس HTTP، مفصولة بأحرف إرجاع وأسطر جديدة (\r\n). يتكون السطر الفارغ الذي يفصل الرأس عن البيانات أيضًا من حرف إرجاع وسطر جديد (تتم مناقشة سبب الحاجة إلى كليهما بإيجاز في الملاحظة السابقة ويتم تفصيله في الفصل الرابع). ستتعرف على رؤوس HTTP الأخرى في الفصل الرابع؛ أنت تتعامل حاليًا مع Content-Type: header.

نوع المحتوى: يصف الرأس نوع البيانات التي تقوم CGI بإرجاعها. التنسيق المناسب لهذا الرأس هو:

نوع المحتوى: النوع الفرعي/النوع

حيث يكون النوع الفرعي/النوع هو النوع الصحيح لملحقات بريد الإنترنت متعدد الأغراض (MIME). نوع MIME الأكثر شيوعًا هو نوع HTML: text/html. يسرد الجدول 2.1 بعض أنواع MIME الأكثر شيوعًا والتي سيتم مناقشتها؛ يتم توفير قائمة وتحليلات أكثر اكتمالا لأنواع MIME في الفصل 4.

ملحوظة

تم اختراع MIME في الأصل لوصف محتويات نصوص رسائل البريد. لقد أصبحت طريقة شائعة إلى حد ما لتمثيل معلومات نوع المحتوى. يمكنك قراءة المزيد عن MIME في RFC1521. RFCs على الإنترنت تعني طلبات التعليقات، وهي عبارة عن ملخصات للقرارات التي اتخذتها مجموعات على الإنترنت تحاول وضع المعايير. يمكنك عرض نتائج RFC1521 على العنوان التالي: http://andrew2.andrew.cmu.edu/rfc/rfc1521.html

الجدول 2.1. بعض أنواع MIME الشائعة. نوع MIME الوصف نص/html لغة توصيف النص التشعبي (HTML) نص/عادي ملفات نصية عادية صورة/gif ملفات رسومية GIF صورة/jpeg ملفات رسومية مضغوطة JPEG ملفات الصوت/الأساسية ملفات الصوت Sun *.au Audio/x-wav ملفات Windows *.wav

بعد الرأس والسطر الفارغ، يمكنك ببساطة طباعة البيانات بالشكل الذي تحتاجه. إذا كنت ترسل HTML، فقم بطباعة علامات HTML والبيانات إلى stdout بعد الرأس. يمكنك أيضًا إرسال الرسومات والصوت والملفات الثنائية الأخرى ببساطة عن طريق طباعة محتويات الملف إلى stdout. وترد أمثلة عديدة على ذلك في الفصل الرابع.

تثبيت وتشغيل برنامج CGI

ينحرف هذا القسم إلى حد ما عن برمجة CGI ويتحدث عن تكوين خادم الويب الخاص بك لاستخدام CGI وتثبيت البرامج وتشغيلها. سيتم تعريفك بخوادم مختلفة لمنصات مختلفة بتفاصيل أكثر أو أقل، ولكن سيتعين عليك التعمق في وثائق الخادم الخاص بك للعثور على الخيار الأفضل.

تتطلب جميع الخوادم مساحة لملفات الخادم ومساحة لمستندات HTML. في هذا الكتاب، تسمى منطقة الخادم ServerRoot، وتسمى منطقة المستند DocumentRoot. على أجهزة UNIX، يكون ServerRoot عادةً في /usr/local/etc/httpd/، ويكون DocumentRoot عادةً في /usr/local/etc/httpd/htdocs/. ومع ذلك، لن يحدث هذا أي فرق في نظامك، لذا استبدل جميع المراجع إلى ServerRoot وDocumentRoot بـ ServerRoot وDocumentRoot الخاصين بك.

عند الوصول إلى الملفات باستخدام مستعرض الويب الخاص بك، فإنك تحدد الملف في عنوان URL المتعلق بـ DocumentRoot. على سبيل المثال، إذا كان عنوان الخادم الخاص بك هو mymachine.org، فيمكنك الوصول إلى هذا الملف باستخدام عنوان URL التالي: http://mymachine.org/index.html

تكوين الخادم لـ CGI

يتم تكوين معظم خوادم الويب مسبقًا للسماح باستخدام برامج CGI. عادةً ما تشير معلمتان إلى الخادم ما إذا كان الملف عبارة عن تطبيق CGI أم لا:

  • الدليل المعين. تسمح لك بعض الخوادم بتحديد أن جميع الملفات الموجودة في الدليل المعين (عادةً ما تسمى cgi-bin افتراضيًا) هي CGI.
  • ملحقات أسماء الملفات. تحتوي العديد من الخوادم على هذا التكوين المسبق الذي يسمح بتعريف جميع الملفات التي تنتهي بـ .cgi على أنها CGI.

تعد طريقة الدليل المعينة بمثابة بقايا من الماضي (استخدمتها الخوادم الأولى باعتبارها الطريقة الوحيدة لتحديد الملفات التي كانت برامج CGI)، ولكنها تتمتع بالعديد من المزايا.

  • فهو يحافظ على مركزية برامج CGI، مما يمنع الدلائل الأخرى من الفوضى.
  • أنت لست مقيدًا بأي امتداد معين لاسم الملف، لذا يمكنك تسمية ملفاتك كما تريد. تسمح لك بعض الخوادم بتعيين عدة أدلة مختلفة كمجلدات CGI.
  • كما أنه يمنحك المزيد من التحكم في من يمكنه تسجيل CGI. على سبيل المثال، إذا كان لديك خادم وتدعم نظامًا به عدة مستخدمين ولا تريد منهم استخدام نصوص CGI الخاصة بهم دون تدقيق البرنامج أولاً لأسباب أمنية، فيمكنك تعيين هذه الملفات فقط في دليل مركزي محدود كـ CGI . سيتعين على المستخدمين بعد ذلك تزويدك ببرامج CGI لتثبيتها، ويمكنك أولاً تدقيق الكود للتأكد من أن البرنامج لا يحتوي على أي مشكلات أمنية كبيرة.

يمكن أن يكون تدوين CGI عبر امتداد اسم الملف مفيدًا نظرًا لمرونته. لا تقتصر على دليل واحد لبرامج CGI. يمكن تكوين معظم الخوادم للتعرف على CGI من خلال ملحق اسم الملف، على الرغم من أنه لا يتم تكوينها كلها بهذه الطريقة افتراضيًا.

تحذير

تذكر أهمية المشكلات الأمنية عند تكوين خادمك لـ CGI. سيتم تناول بعض النصائح هنا، ويغطي الفصل التاسع، حماية CGI، هذه الجوانب بمزيد من التفصيل.

تثبيت CGI على خوادم UNIX

بغض النظر عن كيفية تكوين خادم UNIX الخاص بك، هناك العديد من الخطوات التي يتعين عليك اتخاذها لضمان تشغيل تطبيقات CGI الخاصة بك كما هو متوقع. سيتم تشغيل خادم الويب الخاص بك عادةً كمستخدم غير موجود (أي، مستخدم UNIX لا أحد - حساب ليس لديه أذونات ملف ولا يمكن تسجيل الدخول). يجب أن تكون نصوص CGI (المكتوبة بلغة Perl أو Bourne Shell أو لغة برمجة نصية أخرى) قابلة للتنفيذ والقراءة في جميع أنحاء العالم.

فكرة

لجعل ملفاتك قابلة للقراءة والتنفيذ عالميًا، استخدم أمر أذونات UNIX التالي: chmod 755 filename.

إذا كنت تستخدم لغة برمجة نصية مثل Perl أو Tcl، فقم بتوفير المسار الكامل لمترجمك الفوري في السطر الأول من البرنامج النصي. على سبيل المثال، سيبدأ برنامج Perl النصي الذي يستخدم Perl في الدليل /usr/local/bin بالسطر التالي:

#!/usr/local/bin/Perl

تحذير

لا تضع مطلقًا المترجم الفوري (Perl أو Tcl Wish ثنائي) في الدليل /cgi-bin. فهذا يخلق خطرًا أمنيًا على نظامك. تمت مناقشة هذا بمزيد من التفصيل في الفصل 9.

بعض خوادم UNIX العامة

تحتوي خوادم NCSA وApache على ملفات تكوين مماثلة لأن خادم Apache كان يعتمد في الأصل على كود NCSA. افتراضيًا، يتم تكوينها بحيث يكون أي ملف في دليل cgi-bin (الموجود افتراضيًا في ServerRoot) هو برنامج CGI. لتغيير موقع دليل cgi-bin، يمكنك تحرير ملف التكوين conf/srm.conf. تنسيق تكوين هذا الدليل هو

ScriptAlias ​​​​اسم الدليل المزيف اسم الدليل الحقيقي

حيث Fakedirectoryname هو اسم الدليل الزائف (/cgi-bin) وrealdirectoryname هو المسار الكامل حيث يتم تخزين برامج CGI فعليًا. يمكنك تكوين أكثر من ScriptAlias ​​​​عن طريق إضافة المزيد من خطوط ScriptAlias.

التكوين الافتراضي كافٍ لاحتياجات معظم المستخدمين. تحتاج إلى تحرير السطر الموجود في ملف srm.conf في كلتا الحالتين لتحديد اسم الدليل الحقيقي الصحيح. على سبيل المثال، إذا كانت برامج CGI الخاصة بك موجودة في /usr/local/etc/httpd/cgi-bin، فيجب أن يكون سطر ScriptAlias ​​​​في ملف srm.conf شيئًا مثل هذا:

الاسم المستعار للسيناريو /cgi-bin/ /usr/local/etc/httpd/cgi-bin/

للوصول إلى برامج CGI الموجودة في هذا الدليل أو الارتباط بها، استخدم عنوان URL التالي:

http://hostname/cgi-bin/programname

حيث اسم المضيف هو اسم مضيف خادم الويب الخاص بك، واسم البرنامج هو اسم CGI الخاص بك.

على سبيل المثال، لنفترض أنك قمت بنسخ برنامج hello.cgi إلى دليل cgi-bin (على سبيل المثال /usr/local/etc/httpd/cgi-bin) على خادم الويب الخاص بك والذي يسمى www.company.com. للوصول إلى CGI الخاص بك، استخدم عنوان URL التالي: http://www.company.com/cgi-bin/hello.cgi

إذا كنت تريد تكوين خادم NCSA أو Apache الخاص بك للتعرف على أي ملف بامتداد .cgi باعتباره CGI، فستحتاج إلى تحرير ملفي تكوين. أولاً، في ملف srm.conf، قم بإلغاء التعليق على السطر التالي:

تطبيق AddType/x-httpd-cgi .cgi

سيؤدي هذا إلى ربط نوع MIME CGI بامتداد .cgi. الآن، نحن بحاجة إلى تغيير ملف Access.conf حتى نتمكن من تشغيل CGI في أي دليل. للقيام بذلك، قم بإضافة الخيار ExecCGI إلى سطر الخيار. سيبدو مثل السطر التالي:

فهارس الخيار FollowSymLinks ExecCGI

الآن، أي ملف بامتداد .cgi يعتبر CGI؛ الوصول إليه كما تفعل مع أي ملف على الخادم الخاص بك.

يتم تكوين خادم CERN بنفس طريقة تكوين خوادم Apache وNCSA. بدلاً من ScriptAlias، يستخدم خادم CERN الأمر Exec. على سبيل المثال، في ملف httpd.conf، سترى السطر التالي:

Exec /cgi-bin/* /usr/local/etc/httpd/cgi-bin/*

يمكن تكوين خوادم UNIX الأخرى بنفس الطريقة؛ يتم وصف هذا بمزيد من التفصيل في وثائق الخادم.

تثبيت CGI على نظام التشغيل Windows

يتم تكوين معظم الخوادم المتوفرة لأنظمة التشغيل Windows 3.1 وWindows 95 وWindows NT باستخدام طريقة "امتداد اسم الملف" للتعرف على CGI. بشكل عام، يتطلب تغيير تكوين خادم يستند إلى Windows تشغيل برنامج تكوين الخادم وإجراء التغييرات المناسبة.

في بعض الأحيان قد يكون من الصعب تكوين خادم لتشغيل برنامج نصي (مثل Perl) بشكل صحيح. في DOS أو Windows، لن تتمكن من تحديد المترجم في السطر الأول من البرنامج النصي، كما هو الحال مع UNIX. تحتوي بعض الخوادم على تكوين محدد مسبقًا لربط امتدادات أسماء ملفات معينة بالمترجم. على سبيل المثال، تفترض العديد من خوادم Windows Web أن الملفات التي تنتهي بـ .pl هي نصوص Perl النصية.

إذا لم يقم الخادم بتنفيذ هذا النوع من اقتران الملفات، فيمكنك تحديد ملف دفعي لأداة الحزم يستدعي كلاً من المترجم والبرنامج النصي. كما هو الحال مع خادم UNIX، لا تقم بتثبيت المترجم في دليل cgi-bin أو أي دليل يمكن الوصول إليه عبر الويب.

تثبيت CGI على ماكنتوش

خيارا الخادم الأكثر شهرة لنظام Macintosh هما WebStar StarNine وسابقه MacHTTP. يتعرف كلاهما على CGI من خلال امتداد اسم الملف الخاص به.

يفهم MacHTTP امتدادين مختلفين: .cgi و.acgi، والذي يرمز إلى CGI غير المتزامن. برامج CGI العادية المثبتة على نظام Macintosh (بملحق .cgi) ستبقي خادم الويب في حالة انشغال حتى انتهاء تشغيل CGI، مما يتسبب في تعليق الخادم لجميع الطلبات الأخرى. من ناحية أخرى، يسمح CGI غير المتزامن للخادم بقبول الطلبات حتى أثناء تشغيله.

يجب على مطور CGI Macintosh الذي يستخدم أيًا من خوادم الويب هذه، إن أمكن، استخدام الامتداد .acgi فقط بدلاً من الامتداد .cgi. يجب أن تعمل مع معظم برامج CGI؛ إذا لم ينجح الأمر، قم بإعادة تسمية البرنامج إلى .cgi.

تنفيذ CGI

بمجرد تثبيت CGI، هناك عدة طرق لتنفيذه. إذا كان برنامج CGI الخاص بك عبارة عن برنامج إخراج فقط، مثل برنامج Hello,World!، فيمكنك تنفيذه ببساطة عن طريق الوصول إلى عنوان URL الخاص به.

تعمل معظم البرامج كتطبيق خادم على نموذج HTML. قبل أن تتعلم كيفية الحصول على المعلومات من هذه النماذج، اقرأ أولاً مقدمة قصيرة حول إنشاء مثل هذه النماذج.

برنامج تعليمي سريع حول نماذج HTML

أهم علامتين في نموذج HTML هما

و . يمكنك إنشاء معظم نماذج HTML باستخدام هاتين العلامتين فقط. في هذا الفصل، سوف تستكشف هذه العلامات ومجموعة فرعية صغيرة من الأنواع أو السمات المحتملة. . يوجد دليل كامل ورابط لنماذج HTML في الفصل 3 وHTML والنماذج.

بطاقة شعار

بطاقة شعار يتم استخدامه لتحديد أي جزء من ملف HTML يجب استخدامه للمعلومات التي يدخلها المستخدم. يشير هذا إلى كيفية استدعاء معظم صفحات HTML لبرنامج CGI. تحدد سمات العلامة اسم البرنامج وموقعه - إما محليًا أو كعنوان URL كامل، ونوع التشفير المستخدم، وطريقة نقل البيانات التي يستخدمها البرنامج.

يعرض السطر التالي مواصفات العلامة :

< ACTION FORM = "url" METHOD = ENCTYPE = "..." >

لا تلعب سمة ENCTYPE دورًا خاصًا وعادةً لا يتم تضمينها مع العلامة . المعلومات التفصيلية المتعلقة بعلامة ENCTYPE مذكورة في الفصل 3. وتظهر إحدى طرق استخدام ENCTYPE في الفصل 14، "الامتدادات ذات العلامة التجارية".

تشير سمة ACTION إلى عنوان URL لبرنامج CGI. بمجرد قيام المستخدم بملء النموذج وتقديم المعلومات، يتم تشفير جميع المعلومات ونقلها إلى برنامج CGI. يحل برنامج CGI نفسه مشكلة فك تشفير المعلومات ومعالجتها؛ تمت مناقشة هذا الجانب في "قبول الإدخال من المتصفح" لاحقًا في هذا الفصل.

وأخيرًا، تصف سمة METHOD كيف يجب أن يتلقى برنامج CGI المدخلات. تختلف الطريقتان GET وPOST في كيفية تمرير المعلومات إلى برنامج CGI. تمت مناقشة كليهما في "قبول الإدخال من المتصفح".

لكي يسمح المتصفح بإدخال المستخدم، يجب أن تكون جميع علامات النموذج والمعلومات محاطة بالعلامة . لا تنسى علامة الإغلاق

للإشارة إلى نهاية النموذج. لا يمكن أن يكون لديك نموذج داخل نموذج، على الرغم من أنه يمكنك إعداد نموذج يسمح لك بتقديم أجزاء من المعلومات في أماكن مختلفة؛ وقد تمت مناقشة هذا الجانب باستفاضة في الفصل الثالث.

بطاقة شعار

يمكنك إنشاء أشرطة إدخال نص، وأزرار اختيار، ومربعات اختيار، ووسائل أخرى لقبول الإدخال باستخدام العلامة . يغطي هذا القسم حقول إدخال النص فقط. لتنفيذ هذا الحقل، استخدم العلامة بالصفات التالية:

< INPUT TYPE=text NAME = "... " VALUE = "... " SIZE = MAXLENGTH = >

NAME هو الاسم الرمزي للمتغير الذي يحتوي على القيمة التي أدخلها المستخدم. إذا قمت بتضمين نص في سمة VALUE، فسيتم وضع هذا النص كنص افتراضي في حقل إدخال النص. تسمح لك سمة الحجم بتحديد الطول الأفقي لحقل الإدخال كما سيظهر في نافذة المتصفح. وأخيرًا، يحدد MAXLENGTH الحد الأقصى لعدد الأحرف التي يمكن للمستخدم إدخالها في الحقل. يرجى ملاحظة أن السمات VALUE وSIZE وMAXLENGTH اختيارية.

تقديم النموذج

إذا كان لديك حقل نصي واحد فقط في النموذج، فيمكن للمستخدم إرسال النموذج بمجرد كتابة المعلومات على لوحة المفاتيح والضغط على Enter. وبخلاف ذلك، يجب أن يكون هناك طريقة أخرى للمستخدم لتقديم المعلومات. يرسل المستخدم المعلومات باستخدام زر إرسال مع العلامة التالية:

< Input type=submit >

تقوم هذه العلامة بإنشاء زر إرسال داخل النموذج الخاص بك. عندما ينتهي المستخدم من ملء النموذج، يمكنه إرسال محتوياته إلى عنوان URL المحدد بواسطة سمة الإجراء الخاصة بالنموذج عن طريق النقر فوق الزر إرسال.

قبول الإدخال من المتصفح

فيما يلي أمثلة لتسجيل برنامج CGI الذي يرسل المعلومات من الخادم إلى المتصفح. في الواقع، برنامج CGI الذي يقوم بإخراج البيانات فقط ليس لديه العديد من التطبيقات (بعض الأمثلة مذكورة في الفصل 4). إن القدرة الأكثر أهمية لـ CGI هي تلقي المعلومات من المتصفح - وهي الميزة التي تمنح الويب طابعها التفاعلي.

يتلقى برنامج CGI نوعين من المعلومات من المتصفح.

  • أولاً، يحصل على معلومات مختلفة حول المتصفح (نوعه، ما يمكنه عرضه، المضيف المضيف، وما إلى ذلك)، والخادم (اسمه وإصداره، ومنفذ التنفيذ الخاص به، وما إلى ذلك)، وبرنامج CGI نفسه (اسم البرنامج ومكان وجوده). يقوم الخادم بإعطاء كل هذه المعلومات لبرنامج CGI من خلال متغيرات البيئة.
  • ثانيًا، يمكن لبرنامج CGI تلقي مدخلات المستخدم. يتم إرسال هذه المعلومات، بعد تشفيرها بواسطة المتصفح، إما من خلال متغير البيئة (طريقة GET) أو من خلال الإدخال القياسي (طريقة stdin - POST).

متغيرات البيئة

من المفيد معرفة متغيرات البيئة المتوفرة لبرنامج CGI، أثناء التدريب وتصحيح الأخطاء. يسرد الجدول 2.2 بعض متغيرات بيئة CGI المتوفرة. يمكنك أيضًا كتابة برنامج CGI يقوم بإخراج متغيرات البيئة وقيمها إلى متصفح الويب.

الجدول 2.2. بعض متغيرات بيئة CGI الهامة، غرض متغير البيئة، عنوان IP REMOTE_ADDR لجهاز العميل. REMOTE_HOST مضيف جهاز العميل. HTTP _ACCEPT يسرد أنواع بيانات MIME التي يمكن للمتصفح تفسيرها. HTTP _USER_AGENT معلومات المتصفح (نوع المتصفح ورقم الإصدار ونظام التشغيل وما إلى ذلك). REQUEST_METHOD الحصول أو النشر. CONTENT_LENGTH حجم الإدخال إذا تم إرساله عبر POST. إذا لم يكن هناك إدخال أو إذا تم استخدام أسلوب GET، فإن هذه المعلمة غير محددة. QUERY_STRING يحتوي على معلومات الإدخال عند تمريرها باستخدام أسلوب GET. PATH_INFO يسمح للمستخدم بتحديد مسار من سطر أوامر CGI (على سبيل المثال، http://hostname/cgi-bin/programname/path). PATH_TRANSLATED يترجم المسار النسبي في PATH_INFO إلى مسار فعلي على النظام.

لكتابة تطبيق CGI يعرض متغيرات البيئة، عليك معرفة كيفية القيام بأمرين:

  • تعريف كافة متغيرات البيئة والقيم المقابلة لها.
  • طباعة النتائج إلى المتصفح.

أنت تعرف بالفعل كيفية إجراء العملية الأخيرة. في لغة Perl، يتم تخزين متغيرات البيئة في المصفوفة الترابطية %ENV، والتي يتم تقديمها بواسطة اسم متغير البيئة. تحتوي القائمة 2.3 على env.cgi، وهو برنامج Perl الذي يحقق هدفنا.

القائمة 2.3. برنامج Perl، env.cgi، الذي يطبع كافة متغيرات بيئة CGI.

#!/usr/local/bin/Perl print "نوع المحتوى: نص/html\n\n"; مطبعة " \n"; طباعة " بيئة CGI\n"; طباعة "\n"; طباعة " \n"; طباعة "

بيئة CGI

\n"; foreach $env_var (مفاتيح %ENV) ( طباعة " $env_var= $ENV($env_var)
\n"; ) طباعة "

\ن"؛

يمكن كتابة برنامج مماثل بلغة C؛ الكود الكامل موجود في القائمة 2.4.

القائمة 2.4. Env.cgi.c في C. /* env.cgi.c */ #include شار خارجي ** بيئة؛ int main() ( char **p = بيئة; printf("نوع المحتوى: نص/html\r\n\r\n"); printf(" \n"); برينتف(" بيئة CGI\n"); برينتف("\n"); برينتف(" \n"); برينتف("

بيئة CGI

\n"); while(*p != NULL) printf("%s
\n"،*p++)؛ printf("

\ن")؛ )

الحصول على أو نشر؟

ما الفرق بين طريقتي GET وPOST؟ يمرر GET سلسلة الإدخال المشفرة عبر متغير البيئة QUERY_STRING، بينما يمررها POST عبر stdin. POST هي الطريقة المفضلة، خاصة بالنسبة للنماذج التي تحتوي على الكثير من البيانات، لأنه لا توجد قيود على كمية المعلومات المرسلة، بينما مع طريقة GET تكون كمية مساحة الوسائط محدودة. ولكن لدى GET خاصية مفيدة معينة؛ يتم تناول هذا بالتفصيل في الفصل 5، الإدخال.

لتحديد الطريقة المستخدمة، يقوم برنامج CGI بفحص متغير البيئة REQUEST_METHOD، والذي سيتم تعيينه إما على GET أو POST. إذا تم تعيينه على POST، فسيتم تخزين طول المعلومات المشفرة في متغير البيئة CONTENT_LENGTH.

الإدخال المشفر

عندما يرسل المستخدم نموذجًا، يقوم المتصفح أولاً بتشفير المعلومات قبل إرسالها إلى الخادم ثم إلى تطبيق CGI. عند استخدام العلامة ، يتم إعطاء كل حقل اسمًا رمزيًا. يتم تمثيل القيمة التي أدخلها المستخدم كقيمة المتغير.

لتحديد ذلك، يستخدم المتصفح مواصفات ترميز URL، والتي يمكن وصفها على النحو التالي:

  • يفصل بين الحقول المختلفة بعلامة العطف (&).
  • يفصل بين الاسم والقيم بعلامات المساواة (=)، بحيث يكون الاسم على اليسار والقيمة على اليمين.
  • استبدال المسافات بعلامات الجمع (+).
  • يستبدل كافة الأحرف "غير الطبيعية" بعلامة النسبة المئوية (%) متبوعة برمز سداسي عشري مكون من رقمين للحرف.

ستكون السلسلة المشفرة النهائية مشابهة لما يلي:

الاسم1=القيمة1&name2=القيمة2&name3=القيمة3 ...

ملاحظة: تم العثور على مواصفات تشفير URL في RFC1738.

على سبيل المثال، لنفترض أن لديك نموذجًا يطلب منك الاسم والعمر. يظهر كود HTML الذي تم استخدامه لعرض هذا النموذج في القائمة 2.5.

القائمة 2.5. كود HTML لعرض نموذج الاسم والعمر.

الاسم والعمر

أدخل أسمك:

أدخل عمرك:



لنفترض أن المستخدم أدخل Joe Schmoe في حقل الاسم و20 في حقل العمر. سيتم ترميز الإدخال في سلسلة الإدخال.

الاسم=جو+شمو&العمر=20

تحليل المدخلات

لكي تكون هذه المعلومات مفيدة، تحتاج إلى استخدام المعلومات الموجودة على شيء يمكن استخدامه بواسطة برامج CGI الخاصة بك. يتم تناول استراتيجيات تحليل المدخلات في الفصل الخامس. ومن الناحية العملية، لن تضطر أبدًا إلى التفكير في كيفية تحليل المدخلات، لأن العديد من الخبراء قاموا بالفعل بكتابة مكتبات تقوم بالتحليل، وهي في متناول الجميع. يتم عرض اثنتين من هذه المكتبات في هذا الفصل في الأقسام التالية: cgi -lib.pl لـ Perl (كتبه Steve Brenner) وcgihtml لـ C (كتبته).

الهدف العام لمعظم المكتبات المكتوبة بلغات مختلفة هو تحليل سلسلة مشفرة ووضع أزواج الاسم والقيمة في بنية البيانات. هناك ميزة واضحة لاستخدام لغة تحتوي على هياكل بيانات مدمجة مثل لغة Perl؛ ومع ذلك، فإن معظم مكتبات اللغات ذات المستوى المنخفض مثل C وC++ تتضمن بنية البيانات وتنفيذ الروتين الفرعي.

ليس من الضروري تحقيق فهم كامل للمكتبات؛ ومن الأهم معرفة كيفية استخدامها كأدوات لتسهيل مهمة مبرمج CGI.

CGI-lib.pl

يستخدم Cgi-lib.pl صفائف بيرل الترابطية. تقوم الدالة &ReadParse بتوزيع سلسلة الإدخال وإدخال كل زوج من الاسم/القيمة حسب الاسم. على سبيل المثال، ستكون سلاسل Perl المقابلة اللازمة لفك تشفير سلسلة الإدخال "الاسم/العمر" المقدمة للتو

&ReadParse(*input);

الآن، لرؤية القيمة المُدخلة لـ "name"، يمكنك الوصول إلى المصفوفة النقابية $input("name"). وبالمثل، للوصول إلى قيمة "العمر"، تحتاج إلى إلقاء نظرة على المتغير $input ("age").

Cgihtml

لا تحتوي لغة C على أي بنيات بيانات مدمجة، لذا يقوم cgihtml بتنفيذ قائمة الروابط الخاصة به للاستخدام مع إجراءات تحليل CGI الخاصة به. يحدد هذا بنية نوع الإدخال كما يلي:

بنية Typedef ( Char *name; Char *value; ) نوع الإدخال;

لتحليل سلسلة الإدخال "الاسم/العمر" في لغة C باستخدام cgihtml، يتم استخدام ما يلي:

/* أعلن عن قائمة مرتبطة تسمى الإدخال */ Llist input; /* تحليل الإدخال والموقع في القائمة المرتبطة */ read_cgi_input(&input);

للوصول إلى معلومات العمر، يمكنك إما تحليل القائمة يدويًا أو استخدام وظيفة cgi _val() المتوفرة.

#يشمل #يشمل Char *age = malloc(sizeof(char)*strlen(cgi_val(input, "age")) + 1); Strcpy(age, cgi_val(input, "age"));

يتم الآن تخزين قيمة "العمر" في سلسلة العمر.

ملاحظة: بدلاً من استخدام مصفوفة بسيطة (مثل char age ;)، أقوم بتخصيص مساحة الذاكرة ديناميكيًا لعمر السلسلة. وعلى الرغم من أن هذا يجعل البرمجة أكثر صعوبة، إلا أنه مهم من الناحية الأمنية. ويتم مناقشة هذا بمزيد من التفصيل في الفصل 9.

برنامج CGI بسيط

ستقوم بكتابة برنامج CGI يسمى nameage.cgi الذي يتعامل مع نموذج الاسم/العمر. معالجة البيانات (ما أسميه عادة "الأشياء بينهما") تكون في حدها الأدنى. يقوم Nameage.cgi ببساطة بفك تشفير الإدخال ويعرض اسم المستخدم وعمره. على الرغم من عدم وجود استخدام كبير لمثل هذه الأداة، إلا أنها توضح الجانب الأكثر أهمية في برمجة CGI: الإدخال والإخراج.

يمكنك استخدام نفس النموذج المذكور أعلاه، من خلال استدعاء حقول "الاسم والعمر". لا تقلق بشأن المتانة والكفاءة الآن؛ حل المشكلة الحالية بأبسط طريقة. يتم عرض حلول Perl وC في القائمتين 2.6 و2.7 على التوالي.

القائمة 2.6. Nameage.cgi في بيرل

#!/usr/local/bin/Perl # nameage.cgi يتطلب "cgi-lib.pl" &ReadParse(*input); طباعة "نوع المحتوى: نص/html\r\n\r\n"; مطبعة " \n"; طباعة " الاسم والعمر\n"; طباعة "\n"; طباعة " \n"; اطبع "مرحبًا، " . $input("name") . ". أنت\n"; طباعة $input("age") . "عمرك سنة.

\n"; طباعة "

\ن"؛

القائمة 2.7. nameage.cgi في C

/* nameage.cgi.c */ #include #include "cgi-lib.h" int main() ( llist input; read_cgi_input(&input); printf("Content-Type: text/html\r\n\r\n"); printf(" \n"); برينتف(" الاسم والعمر\n"); برينتف("\n"); برينتف(" \n"); printf("مرحبًا، %s. أنت\n",cgi_val(input,"name")); printf("%s سنة.

\n"،cgi_val(input,"age")); printf("

\ن")؛ )

يرجى ملاحظة أن هذين البرنامجين متساويان تقريبًا. يحتوي كلاهما على إجراءات تحليل تشغل سطرًا واحدًا فقط وتعالج الإدخال بالكامل (بفضل إجراءات المكتبة المقابلة). الناتج هو في الأساس نسخة معدلة من برنامجك الرئيسي Hello, World!.

حاول تشغيل البرنامج عن طريق ملء النموذج والنقر على زر إرسال.

استراتيجية البرمجة العامة

أنت الآن تعرف جميع المبادئ الأساسية المطلوبة لبرمجة CGI. بمجرد أن تفهم كيف تتلقى CGI المعلومات وكيف ترسلها مرة أخرى إلى المتصفح، فإن الجودة الفعلية لمنتجك النهائي تعتمد على قدراتك البرمجية العامة. على وجه التحديد، عندما تقوم ببرمجة CGI (أو أي شيء على الإطلاق)، ضع الصفات التالية في الاعتبار:

  • بساطة
  • كفاءة
  • براعه

السمتان الأوليان شائعتان جدًا: حاول أن تجعل التعليمات البرمجية الخاصة بك سهلة القراءة وفعالة قدر الإمكان. ينطبق تعدد الاستخدامات على برامج CGI أكثر من التطبيقات الأخرى. عندما تبدأ في تطوير برامج CGI الخاصة بك، ستتعلم أن هناك العديد من التطبيقات الأساسية التي يرغب الجميع في إنشائها. على سبيل المثال، إحدى المهام الأكثر شيوعًا ووضوحًا لبرنامج CGI هي معالجة نموذج وإرسال النتائج بالبريد الإلكتروني إلى مستلم محدد. من الممكن أن تتم معالجة عدة نماذج منفصلة، ​​لكل منها مستلم مختلف. بدلاً من كتابة برنامج CGI لكل نموذج على حدة، يمكنك توفير الوقت عن طريق كتابة برنامج CGI أكثر عمومية ينطبق على جميع النماذج.

من خلال تغطية جميع الجوانب الأساسية لـ CGI، قمت بتزويدك بالمعلومات الكافية للبدء في برمجة CGI. ومع ذلك، لكي تصبح مطور CGI فعالاً، يجب أن يكون لديك فهم أعمق لكيفية تواصل CGI مع الخادم والمتصفح. يغطي الجزء المتبقي من هذا الكتاب بالتفصيل المشكلات التي تم ذكرها بإيجاز في هذا الفصل، بالإضافة إلى استراتيجية تطوير التطبيقات ومزايا البروتوكول وقيوده.

ملخص

قدم هذا الفصل بإيجاز أساسيات برمجة CGI. يمكنك إنشاء الإخراج عن طريق تنسيق بياناتك بشكل صحيح والطباعة على stdout. يعد تلقي مدخلات CGI أكثر تعقيدًا بعض الشيء لأنه يجب تحليله قبل استخدامه. ولحسن الحظ، توجد بالفعل العديد من المكتبات التي تقوم بالتحليل.

الآن يجب أن تكون مرتاحًا إلى حد ما في برمجة تطبيقات CGI. ويتناول الجزء المتبقي من هذا الكتاب مزيدًا من التفاصيل حول المواصفات والنصائح واستراتيجيات البرمجة للتطبيقات الأكثر تقدمًا وتعقيدًا.

أصحاب المتاجر الإلكترونية على دراية بمفهوم "التجارة الإلكترونية" بشكل مباشر، وهم يعرفون بالفعل إجابة سؤال "التجارة الإلكترونية - ما هي؟" ولكن إذا وصلت إلى جوهر الأمر، تظهر العديد من الفروق الدقيقة ويأخذ هذا المصطلح معنى أوسع.

التجارة الإلكترونية: ما هي؟

المفهوم العام هو كما يلي: تُفهم التجارة الإلكترونية على أنها نهج معين لممارسة الأعمال التجارية، والذي يتضمن إدراج عدد من العمليات التي تستخدم نقل البيانات الرقمية في توفير السلع أو تقديم الخدمات/العمل، بما في ذلك استخدام إنترنت.

وبالتالي فهي أي معاملة تجارية تتم باستخدام وسيلة اتصال إلكترونية.

يتم ترتيب مخطط العمل على النحو التالي:

  • يمكن لأي شخص أن يكون مدونًا أو أي مالك آخر لصفحة الإنترنت الخاصة به) يقوم بالتسجيل في هذا النظام؛
  • يحصل على الرابط الخاص به؛
  • تضع رمزًا خاصًا على صفحة الويب الخاصة بها - يظهر إعلان للشريك الرسمي المختار لشبكة شركاء التجارة الإلكترونية؛
  • يراقب تحويل موقع الويب؛
  • يربح نسبة معينة مقابل كل عملية شراء يقوم بها زائر لموقعك على الويب يتبع رابطًا تابعًا.

التجارة الإلكترونية الفسفور الأبيض

أصبح عدد كبير من الأشخاص الآن شغوفين بالتجارة الإلكترونية، ويرجع ذلك في المقام الأول إلى الرغبة في إنشاء موقع ويب خاص بهم، وهو متجر إلكتروني فريد لبيع منتجاتهم الخاصة. ولتلبية هذا الطلب المتزايد، ركز المطورون على إنشاء قوالب التجارة الإلكترونية. دعونا ننظر إلى ما هو التالي.

أحد الأمثلة على القالب هو التجارة الإلكترونية في WordPress. هو مكون إضافي لسلة التسوق لـ WordPress (أحد أشهر أنظمة إدارة موارد الويب)، مخصص في المقام الأول لإنشاء المدونات وتنظيمها). يتم توفيره مجانًا تمامًا ويسمح لزوار الموقع بإجراء عمليات شراء على الموقع.

بمعنى آخر، يتيح لك هذا البرنامج الإضافي إنشاء متجر عبر الإنترنت (يعتمد على WordPress). يحتوي هذا البرنامج الإضافي للتجارة الإلكترونية على جميع الأدوات والإعدادات والخيارات اللازمة لتناسب الاحتياجات الحديثة.




قمة