مرجع متغيرات البيئة لواجهة البوابة المشتركة (CGI)

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


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

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

في النهاية ، تم تطوير لغات برمجة الخادم مثل PHP و Python ، ولكن في تلك الأيام ، كانت CGI موجودة. مع ذلك ، كان لدى CGI قدرة فريدة: كانت لغة مستقلة. إذا تمكن الخادم من تشغيل البرنامج ، فيمكن لـ CGI التعامل معه. لذلك يمكن أن يكون برنامج C ++ مترجم أو نص برمجي بيرل مفسر أو أي شيء آخر.

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

المتغيرات

إذا كنت تفكر في برمجة CGI ، فستكون المتغيرات التالية مفيدة للغاية في معالجة طلبات الخادم المختلفة لمعالجة بيانات النموذج مما يؤدي إلى برامج قوية ومتنوعة. للوصول إلى هذه المتغيرات ، سيكون عليك استرداد إدخال من مجموعة من القيم التي تشير إلى البيئة. على سبيل المثال في Perl ، يمكنك استرداد القيم في الصفيف $ ENV باستخدام مفاتيح متغير بيئة مشابهة لما يلي:

$ ENV {$ env_var}

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

فيما يلي متغيرات CGI وماذا تفعل:

AUTH_TYPE

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

طول المحتوى

CONTENT_LENGTH يعطي طول المحتوى المقدم خلال الطلب بعدد وحدات بايت. إذا كان الطول غير معروف ، فسيتم تعيين المتغير على -1.

نوع المحتوى

يحتوي المتغير CONTENT_TYPE على نوع الملف الذي يتم إرجاعه بواسطة الطلب. على سبيل المثال ، إذا تم طلب صفحة ويب ، فسيتم تعيين متغير CONTENT_TYPE على نوع MIME text / html.

GATEWAY_INTERFACE

إذا كنت تريد معرفة أي إصدار من مواصفات CGI يتعامل معه الخادم ، فيمكنك الاستعلام عن GATEWAY_INTERFACE. سيساعد هذا المتغير على التأكد من أنك تستخدم الإصدار الصحيح من المواصفات والأوامر الصالحة.

HTTP_ACCEPT

تمامًا مثلما يوفر CONTENT_TYPE البيانات أو نوع MIME الذي يتم تسليمه ، يسرد HTTP_ACCEPT جميع أنواع MIME المحتملة التي يمكن للعميل تقديم الطلب قبولها. يتم فصل قائمة الأنواع بفواصل.

HTTP_USER_AGENT

يعطي HTTP_USER_AGENT اسم البرنامج الذي يستخدمه العميل لإرسال الطلب. على سبيل المثال ، إذا قام مستخدم بتنفيذ برنامج نصي CGI من Mozilla Firefox ، فإن HTTP_USER_AGENT سيشير إلى أن المستخدم قام بتقديم طلب إلى خادم الويب من خلال Firefox.

PATH_INFO

يحتوي المتغير PATH_INFO على معلومات إضافية تظهر بعد اسم البرنامج النصي CGI. على سبيل المثال ، إذا قمت بتنفيذ www.placeholder.com/cgi-bin/hello.pl/index.html ، فإن PATH_INFO لهذا سيكون الأحرف التي تأتي بعد اسم البرنامج النصي CGI أو /index.html في هذا المثال.

PATH_TRANSLATED

عند كتابة عنوان برنامج نصي CGI على مستعرض ويب ، عادة ما تكتب مسارًا افتراضيًا يتم تعيينه إلى موقع فعلي على الخادم. على سبيل المثال ، إذا انتقلت إلى http://www.somewebsite.com/cgi-bin/index.cgi واستفسرت عن المتغير PATH_TRANSLATED ، فستحصل على المسار الفعلي الفعلي. إذا كنت على خادم يونكس مشترك ، فقد يكون ذلك /home/placeholder/public_html/cgi-bin/index.cgi.

قسيمة استضافة المواقع

تحتاج إلى استضافة وصول CGI عالية الجودة?
حصل GreenGeeks على نتائج جيدة جدًا في اختبارات السرعة والأداء. يمكن للقراء حاليًا توفير ما يصل إلى 60٪ من خططهم. استخدم رابط الخصم الخاص هذا
للحصول على الصفقة.

QUERY_STRING

من الشائع رؤية معلومات الاستعلام ملحقة بعنوان URL بعد علامة الاستفهام. لعنوان URL http://www.placeholder.com/cgi-bin/hello.cgi؟name=Leroy&exclamation = صحيح ، طلب QUERY_STRING سيعود بالاسم = Leroy&تعجب = صحيح إرجاع.

REMOTE_ADDR

يعطي المتغير REMOTE_ADDR عنوان IP لجهاز الكمبيوتر العميل الذي يقوم بالطلب. بشكل أساسي ، يتم حل REMOTE_ADDR بواسطة REMOTE_HOST إلى عنوان IP.

المضيف البعيد

تقبل خوادم الويب باستمرار الاتصالات والطلبات من العملاء. يشير المتغير REMOTE_HOST إلى اسم مضيف العميل الذي يقوم بتنفيذ الطلب. على سبيل المثال ، إذا قبل مضيف الويب الخاص بك طلبًا من webhost2.com ، فسيتم ملء REMOTE_HOST بـ webhost2.com.

REMOTE_IDENT

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

REMOTE_USER

سيؤدي الاستعلام عن المتغير REMOTE_USER إلى إعطاء معلومات اسم المستخدم للكيان الذي يقوم بالطلب. هذا صالح فقط إذا تم تمكين المصادقة.

REQUEST_METHOD

يوفر REQUEST_METHOD نوع طلب HTTP المكتمل والذي يتضمن قيمًا مثل GET و POST و PUT.

SCRIPT_NAME

إذا كنت تريد بدلاً من ذلك الحصول على المسار الظاهري للبرنامج النصي الجاري تنفيذه ، يمكنك ببساطة الاستعلام عن متغير SCRIPT_NAME. على سبيل المثال ، إذا قمت بتشغيل البرنامج النصي http://www.placeholder.com/cgi-bin/ping.sh واستردت SCRIPT_NAME ، فسوف تحصل على المسار الافتراضي للنص البرمجي أو /cgi-bin/ping.sh.

اسم الخادم

تعطي متغيرات SERVER_NAME الاسم الكامل لخادمك. على سبيل المثال ، إذا قمت بالاستعلام عن هذا المتغير ، فستكون النتيجة اسم نطاق موقع الويب. على سبيل المثال ، شيء مثل www.placeholder.com.

SERVER_PORT

أي خادم يعمل على الويب له عنوان ومنفذ. يستخدم الخادم منفذًا لقبول الاتصالات والاستماع إلى الطلبات. المنفذ القياسي هو 80 ، ولكن يمكن أن يكون أرقامًا أخرى – خاصة للتطبيقات المتخصصة. سيؤدي الاستعلام عن المتغير SERVER_PORT إلى قيمة منفذ الاستماع.

SERVER_PROTOCOL

يمكنك معرفة البروتوكول الذي يستخدمه الخادم لمعالجة الطلبات. على سبيل المثال ، إذا كان الخادم الذي تعمل معه يستخدم بروتوكول HTTP ، فسوف يعرض سلسلة مثل “HTTP / 1.1” مما يعني أن الخادم يستخدم HTTP الإصدار 1.1. أساسا السلسلة التي تم إرجاعها في تنسيق بروتوكول / الإصدار.

SERVER_SOFTWARE

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

أباتشي 2.4.25

استنتاج

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

مزيد من القراءة والموارد

لدينا المزيد من الأدلة والبرامج التعليمية والرسوم البيانية ذات الصلة بالتشفير والتطوير:

  • مقدمة وموارد PHP: إنها واحدة من أكبر لغات الترميز على الويب.
  • CGI Primer: ابدأ مع أساسيات CGI.
  • دروس وموارد CGI: اكتشف كيف تأخذ CGI إلى أقصى حد ممكن.

ما رمز يجب أن تتعلمه?

هل تشعر بالارتباك حول لغة البرمجة التي يجب أن تتعلم البرمجة بها؟ تحقق من مخطط المعلومات الخاص بنا ، ما هو الرمز الذي يجب أن تتعلمه؟ إنه لا يناقش الجوانب المختلفة للغات فحسب ، بل يجيب على أسئلة مهمة مثل ، “كم من المال سأجني برمجة PHP من أجل لقمة العيش؟”

ما هو الرمز الذي يجب أن تتعلمه؟
ما رمز يجب أن تتعلمه?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map