غوفر | |
---|---|
Gopher | |
طُوّر من قبل | مارك ب. ماك كايل، جامعة منيسوتا |
تاريخ الطرح | 1991 |
جزء من سلسلة مقالات حول |
بروتوكول الإنترنت |
---|
غوفر هو بروتوكول اتصال مصمم بحيث يسمح بتوزيع المستندات والوثائق والبحث عنها واسترجاعها عبر شبكات الإنترنت. ويعتمد تصميم وواجهة مستخدم بروتوكول غوفر على نمط القوائم.
قدم بروتوكول غوفر في مراحله الأولى بديلاً لشبكة الويب العالمية واسعة النطاق، إلّا أنّه اضطر في نهاية المطاف إلى استخدام بروتوكول نقل النص الفائق. وغالبًا ما يُنظر إلى نظام غوفر البيئي باعتباره السلف الفعال لشبكة الويب العالميّة.[1][2]
قاد عالم الحاسبات الأمريكيّ مارك ب. ماك كايل فريقًا من جامعة مينيسوتا وقاموا بتصميم بروتوكول غوفر الذي يقدم بعض المميزات التي لم تكن تدعمها شبكة الويب العالميّة من قبل،[3] كما يفرض تسلسلاً هرميًا أقوى بكثير على المستندات والوثاق التي يخزنها، كما أنّ واجهة القائمة النصية الخاصة بالبروتوكول مناسبة تمامًا لبيئات الحوسبة التي تعتمد بشكل كبير على طرفية الحاسوب الموجهة للنص عن بعد، والتي كانت لا تزال شائعة الاستخدام آنذاك عندما تمّ تصميم البروتوكول لأول مرة في عام 1991، وسهّلت كذلك بساطة البروتوكول مجموعة متنوعة من تطبيقات المستخدمين.
قدم الهيكل الهرمي لبروتوكول غوفر منصة اتّصالات لأول مكتبة إلكترونية واسعة النطاق على شبكة الإنترنت.[4] ولا يزال الكثير من مستخدمي الإنترنت حول العالم يستخدمون بروتوكول غوفر على الرغم من أن شبكة الويب العالميّة واسعة النطاق قد حلّت محلة بالكامل تقريبًا، إلا أنه لا يزال يمتلك مجموعة صغيرة من الخوادم التي يتم صيانتها بشكلٍ دائم.
صُمّم بروتوكول غوفر لأوّل مرة في منتصف عام 1991 على يد كل من مارك ب. ماككايل، وفاراد أنكليزاريا، وبول ليندنر، ودانييل توري، وبوب ألبيرتي من جامعة مينيسوتا بالولايات المتحدة الأمريكيّة.[5] وكانت الأهداف الرئيسيّة من وراء إنشاء البروتوكول الجديد تتلخص فيما يلي:
يجمع بروتوكول غوفر ما بين التسلسلات الهرميّة للوثائق والمستندات، وبين مجموعة من الخدمات التي تتضمّن خوادم المعلومات واسعة النطاق، ومحركات البحث مثل محرك البحث آرشي ومحرك البحث فيرونيكا، وبوابات الدخول إلى نظم المعلومات الأخرى مثل بروتوكول نقل الملفات ونظام شبكة المستخدمين يوزنت.
ساهمت العديد من العوامل الأخرى أيضًا في سرعة دخول نظام بروتوكول غوفر إلى حيز الاستخدام، والتي كان من بينها الاهتمام العام في الولايات المتحدة الأمريكيّة بأنظمة المعلومات وبدمجها في التعليم الجامعيّ في ذلك الوقت،[6] وساعد على ذلك سهولة إعداد خوادم غوفرلإنشاء نظم المعلومات واسعة النطاق في الحرم الجامعي بشكل فوري مع روابط تساعد على توجيه المستخدم إلى مواقع أخرى على شبكة الإنترنت.
كان أول من صاغ اسم غوفر هو فاراد أنكليزاريا أحد مصمّمي البروتوكول، ويشير الاسم إلى المساعد الذي يقود للوصول إلى الأشياء، والذي يخترق جوف الأرض للوصول إلى المواقع المطلوبة.[7][8][9]
كانت شبكة الويب العالمية في عام 1991 لا تزال في مهدها حينما أنشئ بروتوكول خدمات غوفر الذي ظل يحظي بانتشار واسع بين مستخدمي شبكات الإنترنت حتّى تسعينيّات القرن العشرين، ولكن بحلول أواخر تسعينيات القرن العشرين تراجع استخدام غوفر حول العالم وتوقف عن الانتشار، وساهم في ذلك عدة عوامل كان من أهمها ما يلي:
لا يزال هناك مستخدمون نشطون متحمسون لاستخدام بروتوكول غوفر، كما سعت بعض المحاولات لإعادة إحياء غوفر عبر المنصات والأجهزة المحمولة الحديثة. كان من بين أبرز هذه المحاولات مشروع أوفربايت الذي يستضيف العديد من امتدادات المستعرضات والعملاء الحديثين.[15]
إن تصور المعرفة في «مساحة غوفر» أو «السحابة» كمعلومات محددة في ملف معين، وأهمية بروتوكول نقل الملفات، أثرت على التكنولوجيا والوظائف الناتجة عن غوفر.
تم تصميم غوفر ليعمل ويظهر بشكل يشبه إلى حد كبير نظام ملفات شبكة عالمي قابل للقراءة فقط (ويتوفر برنامج، مثل غوفر اس اف، يمكنه بالفعل تحميل خادم غوفر كمورد فيوز). كحد أدنى، كل ما يمكن القيام به مع ملفات البيانات الموجودة على قرص مضغوط، يمكن القيام به على جوفر.
يتكون نظام جوفر من سلسلة من القوائم الهرمية القابلة للارتباط التشعبي. يتم التحكم في اختيار عناصر القائمة والعناوين من قبل مسؤول الخادم.
على غرار ملف موجود على خادم ويب، يمكن ربط ملف على خادم غوفر كعنصر قائمة من أي خادم غوفر آخر. تستفيد العديد من الخوادم من هذا الربط بين الخوادم لتوفير دليل للخوادم الأخرى التي يمكن للمستخدم الوصول إليها.
تم وصف بروتوكول جوفر لأول مرة فيRFC 1436 . خصصت ايانا منفذ TCP 70 لبروتوكول غوفر.
البروتوكول سهل التفاوض، مما يجعل من الممكن التصفح دون استخدام عميل. لذلك قد تظهر جلسة غوفر القياسية هنا، أنشأ العميل اتصال TCP مع الخادم على المنفذ 70، منفذ جوفر القياسي. ثم يرسل العميل سلسلة متبوعة بحرف إرجاع متبوعًا بتغذية سطر (تسلسل "CR + LF"). هذا هو المحدد، الذي يحدد المستند المراد استرداده. إذا كان محدد العنصر عبارة عن سطر فارغ، فسيتم تحديد الدليل الافتراضي. ثم يرد الخادم بالعنصر المطلوب ويغلق الاتصال. وفقًا للبروتوكول، قبل إغلاق الاتصال، يجب على الخادم إرسال نقطة توقف كاملة (أي حرف نقطة) على سطر بمفرده. ومع ذلك، كما هو الحال هنا، لا تتوافق جميع الخوادم مع هذا الجزء من البروتوكول وقد يغلق الخادم الاتصال دون إعادة نقطة التوقف النهائية.
في هذا المثال، العنصر المرسل هو قائمة غوفر، دليل يتكون من سلسلة من الأسطر التي يصف كل منها عنصرًا يمكن استرداده. سيعرض معظم العملاء هذه الروابط كروابط نص تشعبي، وبالتالي يسمحون للمستخدم بالتنقل عبر مساحة غوفرسبيس باتباع الروابط.[21]
يتم إنهاء جميع الأسطر في قائمة غوفر بواسطة "CR + LF"، وتتكون من خمسة حقول: نوع العنصر باعتباره الحرف الأول (انظر أدناه)، وسلسلة العرض (أي نص الوصف المراد عرضه)، ومحدد (على سبيل المثال ، اسم مسار نظام الملفات)، واسم المضيف (على سبيل المثال، اسم مجال الخادم الذي يوجد عليه العنصر)، والمنفذ (أي رقم المنفذ الذي يستخدمه ذلك الخادم). يتم ربط نوع العنصر وسلسلة العرض بدون مسافة؛ الحقول الأخرى مفصولة بحرف الجدولة.
نظرًا لبساطة بروتوكول غوفر، فإن أدوات مثل نت كات تجعل من الممكن تنزيل محتوى غوفر بسهولة من سطر الأوامر:
echo jacks/jack.exe | nc gopher.example.org 70 > jack.exe
البروتوكول مدعوم أيضًا بواسطة كورل اعتبارًا من 7.21.2-DEV.[22]
يمكن أن تتبع سلسلة المحدد في الطلب اختياريًا بحرف جدولة وسلسلة بحث. يستخدم هذا حسب نوع العنصر 7.
يتم تعريف عناصر قائمة غوفر بواسطة سطور من قيم مفصولة بعلامات جدولة في ملف نصي. يسمى هذا الملف أحيانًا بـ غوفر ماب. باعتبارها شفرة المصدر لقائمة غوفر، فإن غوفر ماب يشبه تقريبًا ملف HTML لصفحة ويب. يعطي كل سطر مفصول بعلامات جدولة (يسمى سطر المحدد ) برنامج العميل وصفًا لعنصر القائمة: ما هو، وما يطلق عليه، وأين يؤدي. يعرض العميل عناصر القائمة بالترتيب الذي تظهر به في غوفر ماب.
يشير الحرف الأول في سطر المحدد إلى نوع العنصر ، والذي يخبر العميل بنوع الملف أو البروتوكول الذي يشير إليه عنصر القائمة. هذا يساعد العميل على تحديد ما يجب فعله به. تعد أنواع عناصر غوفر مقدمة أكثر أساسية لنظام نوع الوسائط المستخدم بواسطة مرفقات الويب والبريد الإلكتروني .
نوع العنصر متبوع بسلسلة عرض المستخدم (وصف أو تسمية تمثل العنصر في القائمة)؛ المحدد (مسار أو سلسلة أخرى للمورد الموجود على الخادم)؛ اسم المضيف (اسم المجال أو عنوان IP للخادم)، ومنفذ الشبكة.
على سبيل المثال: خط محدد التالي بإنشاء ارتباط إلى «الوطن /» دليل على فرعي gopher.floodgap.com، على الميناء 70. يشير نوع العنصر 1 إلى أن المورد هو قائمة غوفر. السلسلة "Floodgap Home" هي ما يراه المستخدم في القائمة.
نوع العنصر | سلسلة عرض المستخدم | محدد | اسم المضيف | ميناء |
---|---|---|---|---|
1 | الصفحة الرئيسية عوفرماب | /الصفحة الرئيسية | gopher.floodgap.com | 70 |
في التعليمات البرمجية المصدر لقائمة غوفر، يشير الرمز المكون من حرف واحد إلى نوع المحتوى الذي يجب أن يتوقعه العميل. قد يكون هذا الرمز رقمًا أو حرفًا من الأبجدية؛ الحروف حساسة لحالة الأحرف.
المواصفات الفنية لـ،RFC 1436 ، يحدد 14 نوعًا من العناصر. حددت مواصفات غوفر + اللاحقة 3 أنواع إضافية.[23] يشير الرمز المكون من حرف واحد إلى نوع المحتوى الذي يجب أن يتوقعه العميل. نوع العنصر 3
هو رمز خطأ لمعالجة الاستثناءات. قام مؤلفو جوفر كلينت بتأليف أنواع عناصر مرتجلة h
(HTML) و i
(رسالة إعلامية) و s
(ملف صوتي) بعد نشر RFC 1436 . متصفحات مثل نت سبيس نيفيجتر والإصدارات السابقة من ميكروسوفت إنترنت اكسبلورر ستضيف رمز نوع العنصر إلى المحدد كما هو موضح فيRFC 4266 ، بحيث يمكن تحديد نوع عنصر غوفر بواسطة عنوان يو ار ال نفسه. لا تزال معظم متصفحات غوفر متاحة، استخدم هذه البادئات في عناوين يو ار ال الخاصة بهم.
تاريخيًا، لإنشاء ارتباط إلى خادم ويب، تم استخدام "GET /" كمحدد زائف لمحاكاة طلب HTTP GET.[24] أنشأ جوهان جيورزن إضافة [25] إلى بروتوكول غوفر، يشار إليها عمومًا باسم «روابط URL»، والتي تسمح بروابط إلى أي بروتوكول يدعم عناوين URL. على سبيل المثال، لإنشاء ارتباط إلى http://gopher.quux.org/ ، يكون نوع العنصر هو h
، وسلسلة العرض هي عنوان الارتباط، ومحدد العنصر هو " URL: http: //gopher.quux. org / "، ويكون المجال والمنفذ لخادم غوفر الأصلي (بحيث يقوم العملاء الذين لا يدعمون روابط URL بالاستعلام عن الخادم والحصول على صفحة إعادة توجيه HTML).
غوفر + هو تحسين متوافق مع بروتوكول غوفر. يعمل غوفر + عن طريق إرسال البيانات الوصفية بين العميل والخادم. لم يتم اعتماد التحسين على نطاق واسع من قبل خوادم غوفر.[26][27][28]
يرسل العميل علامة تبويب متبوعة بعلامة +. سيرد خادم غوفر + بسطر حالة متبوعًا بالمحتوى الذي طلبه العميل. يتم تمييز عنصر على أنه يدعم غوفر + في قائمة دليل غوفر بواسطة علامة تبويب + بعد المنفذ.
تشمل الميزات الأخرى لـ غوفر + ما يلي:
محرك بحث غوفر سبيس الرئيسي هو فيرونيكا . تقدم فيرونيكا بحثًا عن الكلمات الأساسية لجميع عناوين قوائم خادم غوفر للإنترنت العامة. ينتج عن بحث فيرونيكا قائمة بعناصر غوفر، كل منها عبارة عن مؤشر مباشر لمصدر بيانات غوفر. قد تستخدم خوادم غوفر الفردية أيضًا محركات بحث مترجمة خاصة بمحتواها مثل
جغيد وجوكتيل.
جوكتيل (جغيد سابقًا) هو نظام محرك بحث لبروتوكول غوفر. وهي تختلف عن فيرونيكا من حيث أنها تبحث عن خادم واحد في كل مرة.[29]
جوفر في أي هو متغير واقع افتراضي ثلاثي الأبعاد لنظام جوفر الأصلي.
عملاء الويب عبارة عن مستعرضات ومكتبات وأدوات مساعدة مصممة بشكل أساسي للوصول إلى موارد الويب العالمية، ولكنها تحافظ على دعم غوفر.
المستعرض | ملحوظات |
---|---|
تصفح | هذا المتصفح مخصص لنظام التشغيل RISC OS |
لفة | cURL هي أداة مساعدة لنقل الملفات بسطر الأوامر |
إدبروس | إدبروس هو محرر ومتصفح موجه نحو الخطوط بواجهة مثل واجهة ed (محرر نصوص) |
فيلينكس | يقدم الدعم كخيار بناء |
فالكون | |
جوجل كروم | مع امتداد بيورو [30] |
لينكس | |
موزيلا فايرفوكس | انخفض الدعم المدمج من فايرفوكس 4.0 وما بعده؛ [31] يمكن إضافته مرة أخرى عن طريق تثبيت أحد الامتدادات بواسطة اوفربيت [15] |
نت سيرف | قيد التطوير، استنادًا إلى أداة جلب cURL |
أوبرا | يتضمن الإصدار 9.0 من اوبرا إمكانية الوكيل |
بافوك | هو برنامج مرآة ويب (تنزيل تكراري) |
لا يزال بإمكان المتصفحات التي لا تدعم غوفر في الأصل الوصول إلى الخوادم باستخدام أحد بوابات غوفر المتاحة لـ HTTP.
تم تعطيل دعم غوفر في الإصدارين 5.x و 6 من إنترنت اكسبلورر لنظام التشغيل وندوز في أغسطس 2002 عن طريق تصحيح يهدف إلى إصلاح ثغرة أمنية في معالج بروتوكول غوفر بالمستعرض لتقليل سطح الهجوم الذي تم تضمينه في IE6 SP1 ؛ ومع ذلك، يمكن إعادة تمكينه عن طريق تحرير سجل وندوز. في انترنت اكسبلورر7 ، تمت إزالة دعم غوفر على مستوى WinINET. [32]
OmniWeb 5.9.2 Released 1 April 2009: Implemented ground-breaking support for the revolutionary Gopher protocol—a first for WebKit-based browsers! For a list of Gopher servers, see the Floodgap list. Enjoy!. The same text appears in the 5.10 release of 27 August 2009 further down the page, copied from the 5.9.2 unstable branch. The Floodgap list referred to is at Floodgap: new Gopher servers and does not itself refer to April Fools' Day.