# غوفر (بروتوكول)

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

## التاريخ

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

## تراجع الاستخدام

كانت شبكة الويب العالمية في عام 1991 لا تزال في مهدها حينما أنشئ بروتوكول خدمات غوفر الذي ظل يحظي بانتشار واسع بين مستخدمي شبكات الإنترنت حتّى تسعينيّات القرن العشرين، ولكن بحلول أواخر تسعينيات القرن العشرين تراجع استخدام غوفر حول العالم وتوقف عن الانتشار، وساهم في ذلك عدة عوامل كان من أهمها ما يلي:
* أعلنت جامعة مينيسوتا في فبراير عام 1993 اعتزامها فرض رسوم ترخيص مقابل السماح للمستخدمين بتشغيل خوادم غوفر؛ مما جعل المستخدمين قلقين من احتمالية فرض رسوم أخرى في مقابل التطبيقات المستقلة، وأدّى ذلك إلى تراجع استخدام غوفر وزيادة الإقبال على استخدام شبكة الويب العالمية التي أعلنت المنظمة الأوروبية للأبحاث النووية سيرن إخلاء مسؤوليتها عنها. وفي سبتمبر 2000 أعادت جامعة مينيسوتا إتاحة استخدام بروتوكول غوفر بموجب رخصة جنو العمومية.
* كان عدد مستخدمي غوفر قد تضاعف في البداية بسبب مستعرض الويب موزايك الذي تضمنه البروتوكول.
* كان هيكل نظام بروتوكول غوفر أكثر صلابة من هيكل الويب الحر الذي يستخدم لغة ترميز النص الفائق؛ حيث أن لكلّ مستند من مستندات غوفر شكل وتنسيق محددين، ومن ثم يتنقل المستخدم العادي من خلال القائمة باستخدام خادم يتيح له الوصول إلى مستند معين. تختلف هذه الطريقة تمامًا عن الطريقة التي يعثر بها المستخدمون على المستندات باستخدام الويب.
لا يزال هناك مستخدمون نشطون متحمسون لاستخدام بروتوكول غوفر، كما سعت بعض المحاولات لإعادة إحياء غوفر عبر المنصات والأجهزة المحمولة الحديثة. كان من بين أبرز هذه المحاولات مشروع أوفربايت الذي يستضيف العديد من امتدادات المستعرضات والعملاء الحديثين.

### إحصائيات الخوادم

* بحلول عام 2012 أصبح هناك نحو 160 خادمًا من خوادم غوفر المفهرسة على محرك البحث فيرونيكا-2، مما يعكس نموًا بطيئًا في عدد الخوادم عن عام 2007 عندما كان هناك ما يقل عن 100 خادم، والتي عادة ما كان يتم تحديثها بصورة غير منتظمة. قام محرك بحث فيرونيكا بفهرسة ما يقرب من 2.5 مليون محدد فريد عبر هذه الخوادم. يضيف الهواة سنويًّا إلى تلك الخوادم عددًا قليلًا من الخوادم الجديدة، فمنذ عام 1999 أضيف إلى قائمة الفلودجاب ما يزيد عن 50 خادمًا جديدًا.
* في عام 2007 نُشرت نسخة من ساحة غوفر على بروتوكول مشاركة الملفات عبر الإنترنت بت تورنت، وظلت متاحة حتى عام 2010. عادة ما يتم استخدام بروتوكول غوفر لإعداد وإضافة خوادم جديدة، أو في دعم المتصفحات على سبيل الدعابة، وخاصة في يوم كذبة أبريل.
* في نوفمبر 2014، قامت محركات بحث فيرونيكا بفهرسة حوالي 144 خادمًا من خوادم غوفر ممّا مكّنها من فهرسة ما يقرب من 3 ملايين محدّدًا فريدًا. عكس هذا انخفاضًا طفيفًا عن عام 2012.
* في مارس 2016، قام محرك بحث فيرونيكا بفهرسة حوالي 135 خادمًا من خوادم غوفر، وأدى ذلك إلى فهرسة ما يقرب من 4 ملايين محدّدّا فريدًّا.
* في مارس 2017، قام محرك بحث فيرونيكا بفهرسة حوالي 133 خادمًا من خوادم غوفر، وأدّى هذا إلى فهرسة ما يقرب من 4.9 مليون محدّدًا فريدًا.
* في مايو 2018، قام محرك بحث فيرونيكا بفهرسة حوالي 260 خادمًا من خوادم غوفر، وأدّى ذلك إلى فهرسة ما يقرب من 3.7 مليون محدّدًا فريدًا.
* في مايو 2019، قام محرك بحث فيرونيكا بفهرسة حوالي 320 خادمًا من خوادم غوفر، وأدّى ذلك إلى فهرسة ما يقرب من 4.2 مليون محدّدًا فريدًا.
* في يناير 2020، قام محرك بحث فيرونيكا بفهرسة حوالي 395 خادمًا من خوادم غوفر، وأدّى ذلك إلى فهرسة ما يقرب من 4.5 مليون مُحدّدًا فريدًا.
* في فبراير 2021، قام محرك بحث فيرونيكا بفهرسة حوالي 361 خادمًا من خوادم غوفر، والتي تمكّن من خلالها من فهرسة ما يقرب من 6 ملايين محددًا فريدًا.

## تفاصيل تقنية

إن تصور المعرفة في «مساحة غوفر» أو «السحابة» كمعلومات محددة في ملف معين، وأهمية بروتوكول نقل الملفات، أثرت على التكنولوجيا والوظائف الناتجة عن غوفر.

### خصائص جوفر

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

### بروتوكول

تم وصف بروتوكول جوفر لأول مرة فيRFC 1436 . خصصت ايانا منفذ TCP 70 لبروتوكول غوفر.
البروتوكول سهل التفاوض، مما يجعل من الممكن التصفح دون استخدام عميل. لذلك قد تظهر جلسة غوفر القياسية هنا، أنشأ العميل اتصال TCP مع الخادم على المنفذ 70، منفذ جوفر القياسي. ثم يرسل العميل سلسلة متبوعة بحرف إرجاع متبوعًا بتغذية سطر (تسلسل "CR + LF"). هذا هو المحدد، الذي يحدد المستند المراد استرداده. إذا كان محدد العنصر عبارة عن سطر فارغ، فسيتم تحديد الدليل الافتراضي. ثم يرد الخادم بالعنصر المطلوب ويغلق الاتصال. وفقًا للبروتوكول، قبل إغلاق الاتصال، يجب على الخادم إرسال نقطة توقف كاملة (أي حرف نقطة) على سطر بمفرده. ومع ذلك، كما هو الحال هنا، لا تتوافق جميع الخوادم مع هذا الجزء من البروتوكول وقد يغلق الخادم الاتصال دون إعادة نقطة التوقف النهائية.
في هذا المثال، العنصر المرسل هو قائمة غوفر، دليل يتكون من سلسلة من الأسطر التي يصف كل منها عنصرًا يمكن استرداده. سيعرض معظم العملاء هذه الروابط كروابط نص تشعبي، وبالتالي يسمحون للمستخدم بالتنقل عبر مساحة غوفرسبيس باتباع الروابط.
يتم إنهاء جميع الأسطر في قائمة غوفر بواسطة "CR + LF"، وتتكون من خمسة حقول: نوع العنصر باعتباره الحرف الأول (انظر أدناه)، وسلسلة العرض (أي نص الوصف المراد عرضه)، ومحدد (على سبيل المثال ، اسم مسار نظام الملفات)، واسم المضيف (على سبيل المثال، اسم مجال الخادم الذي يوجد عليه العنصر)، والمنفذ (أي رقم المنفذ الذي يستخدمه ذلك الخادم). يتم ربط نوع العنصر وسلسلة العرض بدون مسافة؛ الحقول الأخرى مفصولة بحرف الجدولة.
نظرًا لبساطة بروتوكول غوفر، فإن أدوات مثل نت كات تجعل من الممكن تنزيل محتوى غوفر بسهولة من سطر الأوامر:
echo jacks/jack.exe | nc gopher.example.org 70 > jack.exe
البروتوكول مدعوم أيضًا بواسطة كورل اعتبارًا من 7.21.2-DEV.

#### طلب البحث

يمكن أن تتبع سلسلة المحدد في الطلب اختياريًا بحرف جدولة وسلسلة بحث. يستخدم هذا حسب نوع العنصر 7.

### كود المصدر من القائمة

يتم تعريف عناصر قائمة غوفر بواسطة سطور من قيم مفصولة بعلامات جدولة في ملف نصي. يسمى هذا الملف أحيانًا بـ غوفر ماب. باعتبارها شفرة المصدر لقائمة غوفر، فإن غوفر ماب يشبه تقريبًا ملف HTML لصفحة ويب. يعطي كل سطر مفصول بعلامات جدولة (يسمى سطر المحدد ) برنامج العميل وصفًا لعنصر القائمة: ما هو، وما يطلق عليه، وأين يؤدي. يعرض العميل عناصر القائمة بالترتيب الذي تظهر به في غوفر ماب.
يشير الحرف الأول في سطر المحدد إلى نوع العنصر ، والذي يخبر العميل بنوع الملف أو البروتوكول الذي يشير إليه عنصر القائمة. هذا يساعد العميل على تحديد ما يجب فعله به. تعد أنواع عناصر غوفر مقدمة أكثر أساسية لنظام نوع الوسائط المستخدم بواسطة مرفقات الويب والبريد الإلكتروني .
نوع العنصر متبوع بسلسلة عرض المستخدم (وصف أو تسمية تمثل العنصر في القائمة)؛ المحدد (مسار أو سلسلة أخرى للمورد الموجود على الخادم)؛ اسم المضيف (اسم المجال أو عنوان IP للخادم)، ومنفذ الشبكة.
على سبيل المثال: خط محدد التالي بإنشاء ارتباط إلى «الوطن /» دليل على فرعي gopher.floodgap.com، على الميناء 70. يشير نوع العنصر 1 إلى أن المورد هو قائمة غوفر. السلسلة "Floodgap Home" هي ما يراه المستخدم في القائمة.
| نوع العنصر | سلسلة عرض المستخدم | محدد | اسم المضيف | ميناء |
| 1 | الصفحة الرئيسية عوفرماب | /الصفحة الرئيسية | gopher.floodgap.com | 70 |

#### أنواع المواد

في التعليمات البرمجية المصدر لقائمة غوفر، يشير الرمز المكون من حرف واحد إلى نوع المحتوى الذي يجب أن يتوقعه العميل. قد يكون هذا الرمز رقمًا أو حرفًا من الأبجدية؛ الحروف حساسة لحالة الأحرف.
المواصفات الفنية لـ،RFC 1436 ، يحدد 14 نوعًا من العناصر. حددت مواصفات غوفر + اللاحقة 3 أنواع إضافية. يشير الرمز المكون من حرف واحد إلى نوع المحتوى الذي يجب أن يتوقعه العميل. نوع العنصر 3 هو رمز خطأ لمعالجة الاستثناءات. قام مؤلفو جوفر كلينت بتأليف أنواع عناصر مرتجلة h (HTML) و i (رسالة إعلامية) و s (ملف صوتي) بعد نشر RFC 1436 . متصفحات مثل نت سبيس نيفيجتر والإصدارات السابقة من ميكروسوفت إنترنت اكسبلورر ستضيف رمز نوع العنصر إلى المحدد كما هو موضح فيRFC 4266 ، بحيث يمكن تحديد نوع عنصر غوفر بواسطة عنوان يو ار ال نفسه. لا تزال معظم متصفحات غوفر متاحة، استخدم هذه البادئات في عناوين يو ار ال الخاصة بهم.

#### روابط إنترنت

تاريخيًا، لإنشاء ارتباط إلى خادم ويب، تم استخدام "GET /" كمحدد زائف لمحاكاة طلب HTTP GET. أنشأ جوهان جيورزن إضافة إلى بروتوكول غوفر، يشار إليها عمومًا باسم «روابط URL»، والتي تسمح بروابط إلى أي بروتوكول يدعم عناوين URL. على سبيل المثال، لإنشاء ارتباط إلى http://gopher.quux.org/ ، يكون نوع العنصر هو h ، وسلسلة العرض هي عنوان الارتباط، ومحدد العنصر هو " URL: http: //gopher.quux. org / "، ويكون المجال والمنفذ لخادم غوفر الأصلي (بحيث يقوم العملاء الذين لا يدعمون روابط URL بالاستعلام عن الخادم والحصول على صفحة إعادة توجيه HTML).

### التكنولوجيا ذات الصلة
#### غوفر +

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

##### كيف تعمل

يرسل العميل علامة تبويب متبوعة بعلامة +. سيرد خادم غوفر + بسطر حالة متبوعًا بالمحتوى الذي طلبه العميل. يتم تمييز عنصر على أنه يدعم غوفر + في قائمة دليل غوفر بواسطة علامة تبويب + بعد المنفذ.

##### ميزات أخرى

تشمل الميزات الأخرى لـ غوفر + ما يلي:
* سمات العنصر، والتي يمكن أن تتضمن العناصر
** مدير
** تاريخ آخر تعديل
** طرق عرض مختلفة للملف، مثل بوست سكربت أو نص عادي، أو لغات مختلفة
** الملخص أو وصف العنصر
* استفسارات تفاعلية

#### محركات البحث
##### فيرونيكا

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

##### جوكتيل

جوكتيل (جغيد سابقًا) هو نظام محرك بحث لبروتوكول غوفر. وهي تختلف عن فيرونيكا من حيث أنها تبحث عن خادم واحد في كل مرة.

#### جوفر في ار

جوفر في أي هو متغير واقع افتراضي ثلاثي الأبعاد لنظام جوفر الأصلي.

## برنامج العميل

عملاء الويب عبارة عن مستعرضات ومكتبات وأدوات مساعدة مصممة بشكل أساسي للوصول إلى موارد الويب العالمية، ولكنها تحافظ على دعم غوفر.
عملاء الويب الحاليين :
| المستعرض | ملحوظات |
| المستعرض | ملحوظات | تصفح | هذا المتصفح مخصص لنظام التشغيل RISC OS |
| لفة | cURL هي أداة مساعدة لنقل الملفات بسطر الأوامر |
| إدبروس | إدبروس هو محرر ومتصفح موجه نحو الخطوط بواجهة مثل واجهة ed (محرر نصوص) |
| فيلينكس | يقدم الدعم كخيار بناء |
| فالكون | |
| جوجل كروم | مع امتداد بيورو |
| لينكس | |
| موزيلا فايرفوكس | انخفض الدعم المدمج من فايرفوكس 4.0 وما بعده؛ يمكن إضافته مرة أخرى عن طريق تثبيت أحد الامتدادات بواسطة اوفربيت |
| نت سيرف | قيد التطوير، استنادًا إلى أداة جلب cURL |
| أوبرا | يتضمن الإصدار 9.0 من اوبرا إمكانية الوكيل |
| بافوك | هو برنامج مرآة ويب (تنزيل تكراري) |
لا يزال بإمكان المتصفحات التي لا تدعم غوفر في الأصل الوصول إلى الخوادم باستخدام أحد بوابات غوفر المتاحة لـ HTTP.
تم تعطيل دعم غوفر في الإصدارين 5.x و 6 من إنترنت اكسبلورر لنظام التشغيل وندوز في أغسطس 2002 عن طريق تصحيح يهدف إلى إصلاح ثغرة أمنية في معالج بروتوكول غوفر بالمستعرض لتقليل سطح الهجوم الذي تم تضمينه في IE6 SP1 ؛ ومع ذلك، يمكن إعادة تمكينه عن طريق تحرير سجل وندوز. في انترنت اكسبلورر7 ، تمت إزالة دعم غوفر على مستوى WinINET.