نفكك رابطا مؤلفا ونحسب تعديلاته. [1] [2]
هذا رابط مؤلف بنطاق أمثلة. لوحتنا المحلية تعرض خمس بطاقات محددة وخانات قراءتها؛ لا تتصل بالمواقع ولا تختبر صلاحية كل رابط.
الخلاصة السريعة
- عنوان URL اختصار
Uniform Resource Locator؛ يحدد موردا، دون ضمان توافره. [1] - المخطط في أصلنا
https، والمضيفguide.example.comوالمنفذ8443. المسار الكامل/maps/viewوالاستعلامmode=print&lang=arوالجزءlegend. - منفذ HTTPS الافتراضي 443؛ يمكن حذفه عند استعماله، وهو منفصل عن اسم المضيف. [2]
- في HTTP وHTTPS يبدأ الاستعلام بعلامة الاستفهام والجزء بعلامة المربع؛ الجزء لا يرسل إلى الخادم ضمن عنوان طلب HTTP. [1] [2]
- حذف الشرطة بين
mapsوviewيعطي في حالة اللوحة مسارا واحدا/mapsview. يتغير المسار وحده؛ أعد الشرطة إلى الموضع الذي تقصده. - في بطاقة السؤال بعد المربع يظهر
legend?lang=enكله في خانة الجزء، والاستعلام فارغ. وفي بطاقة حذف السؤال يظهرmode=print&lang=arداخل المسار. - بطاقة الاسم المألوف تعطي المضيف
reader.example.netوالمسار/guide.example.com. اقرأ خانة المضيف، لا الكلمة التي لفتت نظرك فقط. - الرابط النسبي يتحدد بعنوان أساس. [1]
- مع أساس
https://guide.example.com/maps/panel.htmlينتجlegend.htmlالمسار/maps/legend.html، ومعhttps://guide.example.com/notes/panel.htmlينتج/notes/legend.html. أما/help.htmlفيعطي العنوان نفسه في الأساسين. - جدولنا يجمع تعديلات الاستعلام والمسار والجزء بدلا من تكرار حسابها. الأصل 66 محرفا؛ تبديل اللغة أو
viewإلىeditيحفظ الطول مع اختلاف الخانة. - الإطارات البرتقالية في اللوحة تقارن كل بطاقة بالأصل؛ «غير مكتوب» يعني أن قيمة الخانة خالية في تلك البطاقة. الاختيار الجديد يستبدل المدخل ولا يراكم التعديلات.
- المسار قد يكون منطقيا، لا دليل ملفات. [1] [2]
- في مهمتي الأساس
/maps/viewو/maps/view/يعطيcard.htmlنتيجتين مختلفتين؛ أما/help.htmlفيعطي النتيجة نفسها.
عنوان خريطة اخترناه للقراءة
اخترنا في الأصل المخطط https والمضيف guide.example.com والمنفذ 8443. سنقرأ الخانات ثم نقارن بطاقات الخطأ بالنتيجة الأساسية. الصورة الأولى تجمع القيم في مواضعها، واللوحة تعيد عرضها عند اختيار كل بطاقة.
بطاقة الأصل: اقرأ النتيجة قبل اختيار التصحيح
افتح لوحة القراءة المحلية واختر بطاقة الأصل. ستجد النص الكامل أعلى خاناته الست. انسخ أولا المضيف والمنفذ إلى ورقة صغيرة، ثم المسار والاستعلام والجزء. يعرض اختيارنا https في المخطط وguide.example.com في المضيف. لا تجمع الرقم مع الاسم في خانة واحدة لمجرد أنهما متجاوران في سطر الإدخال؛ خانة المنفذ تعرض 8443 مستقلا.
كلفنا القارئ بمهمة محددة في هذه البطاقة: حدد أين تنتهي view وأين تبدأ mode=print. عند المطابقة يظهر المسار /maps/view، وتظهر العبارة التالية داخل الاستعلام، وتبقى legend في الجزء. النتيجة تمنع إجابة تقول إن كل ما يأتي بعد اسم المضيف مسار واحد. عد إلى النص الأصلي وضع إصبعك على العلامتين اللتين فصلتا هذه القيم في بطاقة الأصل.
في سؤال ثان نطلب كتابة الاستعلام كما تعرضه خانته. الجواب mode=print&lang=ar، دون علامة البداية التي نراها قبل الخانة في النص الكامل. أما القيمة بعد المربع فهي legend. إذا كتبت #legend في ورقة قيمنا، فقد أضفت الفاصل إلى القيمة التي طلبنا نقلها. أصلح الورقة بمطابقة الخانة، ثم استعمل الفاصل عند إعادة تركيب العنوان الكامل.
لا تحتاج هذه البداية إلى حفظ عدد حروف كل كلمة. فائدتها أن توصل الوصف العربي بالمكان الذي قرأته: اسم المضيف في خانته، والمقطعان في المسار، وعبارتان داخل الاستعلام. قبل الانتقال إلى بطاقة الخطأ احتفظ بالنتيجة الأساسية، لأن المقارنة ستكون بين حقول محددة لا بين انطباعين عن شكل السطر.
بطاقة الشرطة المحذوفة: مقطعان صارا كلمة واحدة
اختر حالة حذف الشرطة الداخلية من اللوحة. النص يتضمن /mapsview مكان /maps/view. تعرض خانة المسار القيمة الجديدة، بينما تبقى خانات المخطط والمضيف والمنفذ والاستعلام والجزء مثل الأصل. هذه نتيجة مفيدة عند مراجعة رابط نسخته من ورقة: لم يكف ظهور الحروف نفسها بالترتيب حتى يبقى المقطعان كما كتبناهما.
نعرض جوابا خاطئا يقول إن view ما زالت المقطع الثاني لأننا نستطيع تمييز الكلمة بعيننا. صحح الجواب بالرجوع إلى النص الذي في خانة المسار: لا توجد الشرطة التي فصلت الكلمتين في الأصل. في البطاقة المعدلة لدينا المقطع المكتوب mapsview، لا مقطعان يفصل بينهما حد معلن. المعنى الذي نعرفه للكلمتين لا يعيد العلامة المحذوفة.
ولإصلاح نص مثالنا على الورق، نضع الشرطة بعد maps وقبل view. لا نضعها في نهاية الكلمة، لأن /mapsview/ ليس النص الذي قصدناه في الأصل. اكتب القيمتين جنبا إلى جنب وحدد موضع الإضافة؛ هذه مراجعة للحد بين مقطعين، لا عملية اختيار كلمة بديلة. ثم قارن بقية الخانات لتتأكد من أنك لم تغير الاستعلام في الوقت نفسه.
في سؤال مستقل نعطيك اختيارين: «تغير المضيف» و«تغير المسار». الجواب الثاني، ويستند إلى الفرق الذي تعرضه الخانة الرابعة. لو حكمت من بقاء guide.example.com وحده أن البطاقتين متطابقتان، فقد تجاهلت الحقل الذي تغير. ترتيب العمل الأفضل هنا أن تحدد الخانة المختلفة أولا، ثم تصف التغيير داخلها.
بطاقة السؤال بعد المربع: أين ظهرت عبارة اللغة؟
في حالة السؤال بعد المربع اخترنا النص https://guide.example.com:8443/maps/view#legend?lang=en. تعرض اللوحة الاستعلام فارغا، وتعرض legend?lang=en كاملا في الجزء. بقي المسار /maps/view كما كتبناه. ليس الجواب أن الخانة الخامسة تحتوي إعداد اللغة؛ هذه العبارة ظهرت في الخانة السادسة في هذا الإدخال المحدد.
اطلب من قارئ آخر توقع خانة lang=en قبل إظهار النتيجة، ثم قارن التوقع بالمخرجات. إذا اختار الاستعلام اعتمادا على شكل اسم اللغة، فاستعمل النص الكامل لتحديد موضع علامة الاستفهام بالنسبة إلى المربع. لدينا ترتيب مختلف عن بطاقة الأصل، وهذا هو الفرق الذي ينبغي ذكره في التصحيح. لا نحتاج إلى تغيير كلمة lang كي نوضح أين قرئت.
نكتب جواب الإصلاح على الورق: إذا أردنا في مثالنا استعلاما قيمته lang=en وجزءا قيمته legend، فالنص المقترح https://guide.example.com:8443/maps/view?lang=en#legend. انتقلت العبارة إلى موضع يسبق الجزء. هذا تصحيح نكتبه على الورق؛ اختيارات اللوحة الخمسة للقراءة وليست حقلا حرا لتحرير النص.
الخطأ الذي تكشفه المهمة ليس اختلاف طول ar وen. المسألة أن عبارة تبدو كاسم وقيمة وقعت في حقل غير الذي توقعه القارئ. لذلك يسجل جوابنا الخانتين معا: الاستعلام فارغ، والجزء يتضمن علامة السؤال واللغة. بهذه الصياغة يستطيع آخر معرفة ما وقع دون البحث في بقية العنوان أو افتراض أن الاسم نفسه حدد موقع العبارة.
بطاقة السؤال المحذوف: بقيت العلامة بين القيم داخل المسار
النص الرابع في لوحتنا هو https://guide.example.com:8443/maps/viewmode=print&lang=ar#legend. نزعنا علامة السؤال التي كانت قبل mode=print. في النتيجة يظهر المسار /maps/viewmode=print&lang=ar، ويظهر الاستعلام فارغا، بينما بقي الجزء legend. لاحظ أن علامتي المساواة والعلامة بين عبارتي القيم لم تكف في هذه البطاقة لجعل النص استعلاما.
في ورقة إجابة خاطئة كتب أحدهم /maps/view في المسار وmode=print&lang=ar في الاستعلام، كأنه يقرأ الأصل. نراجعه بالنتيجة المعروضة: خانة المسار أطول مما نقل، وخانة الاستعلام خالية. ليس المطلوب تخمين أين أراد الكاتب وضع الإعدادات، بل وصف البطاقة التي اختيرت بالفعل. إذا أردت وصف المقصود القديم، فاذكره بوصفه تصحيحا منفصلا.
نحدد موضع التصحيح بعد view مباشرة، فنستعيد ?mode=print&lang=ar في نص مثالنا. إضافة السؤال بعد print بدلا من ذلك ستترك viewmode=print في الجزء السابق له، ولا تعيد أصلنا. في بطاقة الإصلاح اكتب الحد المطلوب كاملا، ثم قارن المسار والاستعلام بالقيمتين المرجعيتين. بهذه الطريقة يعرف القارئ أين يضع العلامة، لا مجرد أنه يحتاج علامة في مكان ما.
قارن هذه الحالة ببطاقة السؤال بعد المربع. كلاهما أعطى استعلاما فارغا، لكن النص الذي كنا نريد قراءته في الاستعلام ظهر هنا داخل المسار، وهناك داخل الجزء. النتيجة المشتركة «فارغ» لا تكفي وحدها لتشخيص الخطأ. أضف إلى جوابك اسم الحقل الذي حمل العبارة، ثم الموضع الذي ستغيره في النص لتصل إلى التقسيم المقصود.
بطاقة الاسم داخل المسار: ماذا تنسخ في خانة المضيف؟
اختر البطاقة الخامسة، ونصها https://reader.example.net/guide.example.com. تعرض اللوحة المضيف reader.example.net والمسار /guide.example.com. المنفذ والاستعلام والجزء خالية في هذه البطاقة. المهمة أن تنقل المضيف وحده إلى جوابك؛ لا تختَر العبارة التي تشبه اسم بطاقة الأصل لأنها مألوفة لك.
إذا كتبت guide.example.com في خانة المضيف على ورقتك، فارجع إلى الشرطة التي تسبقها في هذا النص. النتيجة المعروضة تضعها ضمن المسار، بينما يحتوي حقل المضيف اسما آخر. إصلاح الإجابة لا يقتضي حذف العبارة من العنوان؛ يكفي أن تنقلها إلى الحقل الذي ظهرت فيه. عندئذ تصف النص الحالي بدلا من تحويله في ذهنك إلى الأصل.
أعطينا هذه البطاقة اسم عرض من عندنا هو «دليل الخرائط». لو تغير اسم العرض إلى «أرشيف الصور» فلن تتغير الخانات المحسوبة للنص نفسه. لذلك نكتب في بطاقة القراءة سطرين: الاسم الذي نعرضه للقارئ، ثم اسم المضيف الذي نقلناه من النتيجة. السؤال هنا عن المعلومتين اللتين كتبتا في المثال، وليس عن حكم على جهة حقيقية.
في تمرين مراجعة اجمع إجابتين قصيرتين: «الكلمة المألوفة في المسار» و«المضيف مختلف عن الأصل». كل واحدة تضيف جزءا يحتاجه وصف المقارنة. أما عبارة «الاسم نفسه موجود» فصحيحة على مستوى الحروف لكنها تترك موضعه مجهولا. استخدم تسمية الخانة في جوابك كي يعرف القارئ أي علاقة قصدتها بين البطاقتين.
الإطار البرتقالي يقارن البطاقة بالأصل
تظهر الخانات المختلفة في اللوحة بإطار برتقالي، وتبقى الخانات المطابقة للأصل بإطارها المعتاد. اختر بطاقة حذف الشرطة فسترى إطارا حول المسار وحده. ثم اختر بطاقة السؤال بعد المربع، فيظهر حول الاستعلام والجزء. التمييز لا يعني أن أي قيمة مؤطرة خطأ؛ هو وصف للفرق بين المدخل المختار ومرجع المقارنة الذي وضعناه في اللوحة.
في بطاقة الاسم داخل المسار يظهر إطار المنفذ أيضا، رغم أن السؤال ركز على المضيف. السبب أن أصلنا يكتب 8443، والبطاقة الخامسة لا تكتب منفذا. وتظهر عبارتا الاستعلام والجزء بصفة «غير مكتوب» بدل القيمتين الموجودتين في الأصل. إذا نقلت المضيف الصحيح وتجاهلت هذه الخانات، فقد أنجزت سؤال المضيف، لكنك لم تسجل كل فروق البطاقة.
استعمل زر الأصل بين مهمتين لتعيد النتيجة المرجعية أمامك. اختيار بطاقة جديدة يستبدل المدخل المعروض كاملا؛ لا يضيف حذف الشرطة إلى نتيجة البطاقة التي سبقته. لهذا نقرأ في كل مرة عنوان البطاقة ونصها قبل تفسير الإطارات. وإذا أردت جمع تعديلين في نص آخر، فاكتبه في ورقة إجابة مستقلة، لأن الاختيارات الخمسة هنا ليست محررا حرا يجمع خطواتك.
الخانات والفواصل في النص الأساسي
خانات مثال HTTPS: المخطط والمضيف والمنفذ والمسار والاستعلام والجزء؛ المنفذ منفصل عن المضيف. [1] [2]
المخطط يحدد البروتوكول؛ مثالنا HTTPS. [2]
نضع في الخانة الأولى https، وفي الثانية guide.example.com، وفي الثالثة 8443. الخانة الرابعة تحتوي /maps/view كاملة، لا كلمة maps وحدها. الخامسة تحتوي mode=print&lang=ar، والسادسة تحتوي legend. في صورة المثال تظهر الأسماء والقيم منفصلة ليسهل رد كل كلمة في الشرح إلى الموضع الذي نقرأه. لا نحتاج إلى تخمين حد الجزء من طول الكلمة أو من معناها؛ نراجع العلامة المكتوبة قبله.
عند إعادة تركيب القيم المختارة، نضع بعد المخطط نقطتين وشرطتين مائلتين، ثم اسم المضيف. ونضيف نقطتين قبل رقم المنفذ، ثم نكتب المسار الذي بدأناه بشرطة مائلة. قبل الاستعلام تظهر علامة الاستفهام، وقبل الجزء تظهر علامة المربع. بهذه الخطوات نعيد نصنا المعروض حرفيا. الصورة لا تزعم أن كل عنوان ممكن يحتوي الخانات نفسها؛ إنها تسجل اختيارات عنوان واحد أضفنا إليه منفذا واستعلاما وجزءا لتظهر الفروق.
المضيف والمنفذ
منفذ HTTPS الافتراضي 443؛ يمكن حذفه عند استعماله، وهو منفصل عن اسم المضيف. [2]
في البطاقة الأصلية يظهر guide.example.com قبل بداية المسار، ويظهر 8443 بعد النقطتين اللتين اخترناهما لرقم المنفذ. إذا كتبنا في ورقة المقارنة guide.example.com:8443 فلدينا اسم المضيف مع المنفذ، وليس اسم المضيف وحده. نحتفظ بهما في خانتين في الرسم كي لا يدخل الرقم ضمن عد السبعة عشر الخاص بالاسم. مجموع الاسم والرقم مع النقطتين في هذا الجزء اثنان وعشرون محرفا.
ننشئ عنوانا آخر في الورشة هو https://archive.example.com/maps/view. أضفنا كلمة archive بدلا من guide، وحذفنا بقية الإضافات في هذه البطاقة القصيرة لكي نركز على الاسم. الاسم الجديد تسعة عشر محرفا، لأن الكلمة الأولى صارت سبعة بدلا من خمسة. لا نسمي هذا التغيير انتقالا إلى شركة أرشيف، ولا نفترض أنه يشارك البطاقة الأولى حساباتها. ما تحققناه في النص هو تغير اسم المضيف المختار.
وننشئ للمقارنة https://guide.example.com/archive/view. هنا لم تدخل كلمة archive مكان guide. إنها بعد بداية المسار، ولذلك يختلف هذا التعديل عن تعديل البطاقة السابقة. إذا قرأ شخص الكلمة الكبيرة وحدها في العنوانين، فقد يسميهما بالاسم نفسه ويضيع الفرق. نكتب في سجل الورشة موضع الكلمة قبل معناها الذي توحي به، ثم نرجع إلى الخانة التي تغيرت فعلا. عنواننا الأول نفسه لا يحتوي www، ولم نضفها حتى نقرأ المضيف.
المسار الكامل
المسار قد يكون منطقيا، لا دليل ملفات. [1] [2]
في عنواننا المسار الكامل /maps/view يتكون من مقطعين غير فارغين هما maps وview. إذا قلنا إن المسار هو /maps فقط فقد أسقطنا المقطع الثاني من النص الذي اخترناه. ويمكننا اقتراح نسخة /maps/view.html. هذه الإضافة تغير القيمة المكتوبة، لكن الورشة لم تتحقق من وجود ملف على قرص يحمل ذلك الاسم. نقرأ آخر المقطع كما كتبناه ولا نحوله تلقائيا إلى وصف لبنية خادم.
الاستعلام: قيمتان سميناهما دون فرض سلوك
سمينا عبارتي الاستعلام mode=print وlang=ar. في عقد الورشة نقرأ الأولى اسما وقيمة هما mode وprint، والثانية lang وar. هذا اختيار واضح للتفسير داخل المثال، لا وصف ملزم لكل استعلام في كل تطبيق. لم نرسل القيم إلى خادم حتى نعرف إن كان يستخدمها للطباعة أو للغة. عندما نقول إنها قيم مثالنا نحفظ الفرق بين أسماء اخترناها وبين إعدادات فعلية لخدمة نعرف قواعدها.
الرابط النسبي
الرابط النسبي يتحدد بعنوان أساس. [1]
نختار في الورشة صفحتين أساسهما https://guide.example.com/maps/panel.html وhttps://guide.example.com/notes/panel.html. نضع بجانبهما النص نفسه legend.html. في حل المثال يصبح العنوان الأول https://guide.example.com/maps/legend.html، والثاني https://guide.example.com/notes/legend.html. لم يتغير النص القصير الذي وضعناه، لكن السياق الذي اخترناه اختلف. لذلك لا ننسب إلى النص القصير وجهة كاملة واحدة دون ذكر الصفحة التي ننطلق منها.
ونختبر في الأساسين النص /help.html. يعطي في المقارنة https://guide.example.com/help.html في الحالتين. وجود الشرطة في بداية هذا الاختيار مختلف عن النص السابق الذي بدأ بحروف اسم الملف. لا نحتاج هنا إلى درس برمجة أو إلى مفاضلة بين أدوات معالجة الروابط؛ لدينا نتيجتان لأساسين محددين يمكن عرضهما في دفتر القراءة. أما الأساس الذي قد تعينه وثيقة حقيقية فلم ندرسه، ولذلك تبقى النتائج مرتبطة بالسياقين اللذين أعلنّا عنهما.
مهمة جديدة: الشرطة الأخيرة في عنوان الأساس
لنجرب على الورق حالتين جديدتين لعنوان الأساس، مع إبقاء الرابط المختار card.html نفسه. الأولى https://guide.example.com/maps/view، والثانية https://guide.example.com/maps/view/. الفرق المرئي شرطة مائلة في النهاية فقط. حسبنا عنوان النتيجة لكل واحدة: الأولى https://guide.example.com/maps/card.html، والثانية https://guide.example.com/maps/view/card.html. في بطاقة الإجابة اكتب الأساس كاملا قبل النتيجة، ثم ضع خطا تحت موضع الاختلاف في المسارين. ليست الإجابة الأولى خطأ لمجرد أنها أقصر؛ إنها ناتجة من الأساس الأول الذي أعطيناه للحساب. إذا أردنا النتيجة الثانية فعلينا اختيار الأساس الثاني، لا إضافة كلمة إلى الجواب ونسيان مدخله. هذه مهمتان على الورق، خارج اختيارات اللوحة الخمسة.
في سؤال متابعة أعطينا زميلين الرابط /help.html مع الأساسين السابقين. خرج الحساب في الحالتين بالعنوان https://guide.example.com/help.html. والجواب المطلوب هنا مختلف عن السؤال الأول: لماذا لا يصلح أن تنقل المسار السابق ثم تستبدل اسم الصفحة فقط؟ قارن النتائج المكتوبة؛ كلاهما يبدأ الآن من /help.html، ولا يحتفظ بمقطعي maps وview. احفظ في جدول الورقة ثلاثة أعمدة: الأساس، والنص النسبي، والنتيجة الكاملة. بهذه الطريقة يمكن لزميلك إعادة الحساب من المدخل نفسه، كما تستطيع تحديد الخطأ إذا نسخ نتيجة المسألة الأولى إلى الثانية. عند تصحيح الورقة لا تكتف بعبارة «أضف الشرطة»؛ عين أي عنوان تقصد، لأن الشرطة أضيفت في أساس السؤال الأول ولم تضف إلى النص النسبي في سؤال المتابعة.
جدول واحد لتعديلات نصنا
يجمع الجدول كل تعديل بدءا من الأصل نفسه. تساوي الطول في تبديل اللغة والمسار لا يعني تساوي الخانة التي تغيرت؛ نحتفظ بالاسم والقيمة معا في سجل المقارنة. طول الأصل 66: قيم خاناته 5 و17 و4 و10 و18 و6، ومعها ستة محارف للفواصل الخارجية.
| بطاقة المثال | ما تغير | المحارف |
|---|---|---|
| الأصل | لا تغيير | 66 |
| ar إلى en | الاستعلام | 66 |
| view إلى edit | المسار | 66 |
| legend إلى key | الجزء | 63 |
| اللغة والجزء معا | خانتان | 63 |
| print إلى screen | الاستعلام | 67 |
| حذف الاستعلام مع السؤال | الاستعلام | 47 |
المصادر ومتابعة القراءة
- MDN — What is a URL? (يفتح في نافذة جديدة)developer.mozilla.org
- web.dev — What are the parts of a URL? (يفتح في نافذة جديدة)web.dev
- RFC 2606 — Reserved Top Level DNS Names (يفتح في نافذة جديدة)rfc-editor.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.