الخلاصة

  • عرّف RFC 2068 في يناير 1997 حقل Link في رد HTTP لوصف علاقة بين موردين، غالباً المورد المطلوب وآخر. سمح بقيم متعددة واستعار معنى قريباً من عنصر LINK في HTML.
  • سجل RFC 5988 الصادر في أكتوبر 2010 أن RFC 2616 الصادر في يونيو 1999 أسقط الحقل لقلة خبرة التنفيذ. بقي وضعه غامضاً بعد الحذف، مع أن بعض برامج المستخدم استعملته لاحقاً وظهرت حاجات جديدة.
  • أعاد RFC 5988 تعريف الحقل ضمن نموذج روابط موصوفة النوع لا يتقيد بتنسيق صفحة واحد. ثم جاء RFC 8288 في أكتوبر 2017 ليحل محله، مع إبقاء Link طريقة HTTP لحمل علاقة بين الموارد.

رابطه يسافر خارج متن الصفحة

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

هذا ما اقترحه RFC 2068 المنشور في يناير 1997. عرّف القسم 19.6.2.4 حقل Link ليصف علاقة بين موردين، عادة المورد المطلوب ومورد آخر. يمكن للاستجابة حمل أكثر من قيمة. يحدد rel نوع العلاقة، وtitle اسماً مقروءاً، وanchor نقطة انطلاق مختلفة. وقارن النص الحقل بعنصر LINK في HTML. صار ممكناً وضع لافتة تشير إلى جار الصفحة على غلاف الرد نفسه.

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

وضع RFC 2068 الحقل بين الميزات الإضافية. وفي الجوار عرّف طريقتي طلب باسم LINK وUNLINK لإنشاء العلاقات وإزالتها. طريقة الطلب ليست حقل الرد. عودة الحقل في 2010 لا تسجل عودة هاتين الطريقتين. التشابه في الاسم لا يمنح الآليات المختلفة تاريخاً واحداً.

النسخة التالية تترك مكاناً خالياً

استبدل RFC 2616 الصادر في يونيو 1999 الوثيقة السابقة من دون تعريف Link. سبب القرار ورد في RFC 5988: لم يكن هناك ما يكفي من خبرة التنفيذ. كانت الفكرة مكتوبة، لكن محرري مراجعة HTTP/1.1 لم يجدوا ممارسة كافية تبقيها ضمن أساس المعيار الجديد.

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

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

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

عودة الرابط بلا قيد HTML

أعاد RFC 5988 في أكتوبر 2010 تعريف Link بصياغة أحدث متوافقة مع القديمة. والأهم أنه فصل العلاقة عن طريقة كتابتها. للرابط الموصوف النوع سياق، ونوع علاقة، وهدف، وسمات هدف اختيارية. يمكن حمل العلاقة نفسها في عنصر HTML أو Atom أو ترويسة HTTP. شكل الحامل لا يخلق معنى العلاقة.

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

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

في أكتوبر 2017 حل RFC 8288 محل RFC 5988 وأبقى بنية السياق والعلاقة والهدف والسمات الاختيارية. ظل Link صورة من صور حمل الروابط في HTTP. تميز أمثلته بين تصفح الويب الذي يبحث عن stylesheet في HTML، وربما في الترويسة، وبين تطبيق Atom الذي يقرأ علاقات أخرى. نوع العلاقة يشرح الصلة بين موردين؛ ونوع الوسائط يصف تنسيق التمثيل الذي قد يعود عند طلب الهدف. لكل منهما سؤال مستقل.

إذن لم تكن سنة 2010 مجرد إعادة سطر فُقد في 1999. حقل 1997 نقل فكرة قريبة من رابط HTML إلى HTTP. الوثيقتان اللاحقتان صاغتا نموذجاً للعلاقات عابراً للصيغ وسجلاً لمعانيها. عاد الاسم ومعه وظيفة أوضح.

الوثيقة انتظرت أثراً في البرمجيات

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

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

التفصيل الناقص لتاريخ الاعتماد هو سجلات إصدارات مؤرخة للعميل والخادم أو ردود محفوظة. سلسلة RFC وحدها تثبت الانعطاف المؤسسي: حقل دخل، وخرج لقلة الخبرة، ثم عاد عندما أصبح الربط بين الموارد خارج متن HTML مسألة أوضح.