العربية

أدوات المطور · URL التشفير وفك التشفير

تشريح URL: شرح المخطط والسلطة والمسار والاستعلام والجزء

· خلفية

هيكل url معايير الويب أدوات المطور

خمسة مكونات URL تم تصنيفها بمحدداتها
الرسم التوضيحي المتجه الأصلي ToolAcre

يعتمد كل قرار تشفير بالنسبة المئوية على أي جزء من URL يوجد الحرف فيه. يسمي هذا المنشور المكونات الخمسة من RFC 3986، ويوضح ما يعنيه كل محدد ولماذا لا يصل الجزء مطلقًا إلى الخادم.

لماذا يكون نفس # جيدًا في مكان ما ويدمر الرابط في مكان آخر - سؤال مكون، وليس سؤالًا شخصيًا

حرف التجزئة (#) في URL يعني أشياء مختلفة تمامًا اعتمادًا على مكان ظهوره. داخل قيمة سلسلة استعلام مثل ?search=C%23sharp، يجب ترميزها إلى %23 لتكون آمنة. في نهاية URL مثل https://example.com/page#section,، يتم وضع علامة على محدد الجزء وكل شيء بعده جزء. شخصية واحدة وسياقان ومعنيان مختلفان. ولهذا السبب تعتمد قرارات التشفير على معرفة أي جزء من URL الذي تعمل معه.

علامة الاستفهام (؟) لها أيضًا طبيعة مزدوجة. داخل المسار أو قيمة الاستعلام، يجب ترميزها كـ %3F لتظهر كبيانات. باعتباره حرفًا حرفيًا بين المسار وسلسلة الاستعلام، فهو بناء جملة هيكلي. إن فهم هذه المكونات الخمسة - المخطط والسلطة والمسار والاستعلام والجزء - هو أساس المعالجة الصحيحة URL.

المكونات الخمسة: المخطط، والسلطة، والمسار، والاستعلام، والجزء - والمحددات التي تفصل بينها

RFC 3986 يعرّف رسميًا عناوين URL بأنها تحتوي على خمسة مكونات: المخطط، والسلطة، والمسار، والاستعلام، والجزء، مفصولة بمحددات محددة. يأتي المخطط أولاً، يليه ://, ثم المرجع، ثم /, ثم المسار، ثم؟، ثم الاستعلام، ثم #، ثم القطعة. لا تظهر كافة المكونات في كل URL. قد يحتوي الحد الأدنى URL على مخطط ومسار فقط، مثل "mailto:user@example.com". يتضمن URL الكامل جميع العناصر الخمسة.

كل مكون له قواعد بناء الجملة الخاصة به. يتم حجز النقطتين في المخطط، والشرطة المائلة في المسار، وعلامة الضم في الاستعلام. تحتاج الأحرف المحجوزة إلى التشفير عندما تظهر كبيانات: الشرطة المائلة في قيم المسار تصبح %2F.

داخل السلطة - يتم حجز معلومات المستخدم والمضيف والمنفذ ولماذا @ و : هناك

يحتوي مكون السلطة على عنوان الشبكة للمورد: اسم المستخدم وكلمة المرور واسم المضيف والمنفذ. التنسيق هو [userinfo@]host[:port]. يتم فصل معلومات المستخدم والمضيف بواسطة @؛ يتم فصل المضيف والمنفذ بواسطة:. يتم حجز هذه الأحرف @ و : ضمن السلطة لتحديد هذه المكونات الفرعية. إذا كان لديك اسم مستخدم يحتوي على الرمز @، فيجب أن يكون مشفرًا بنسبة مئوية قبل ربطه. على سبيل المثال، "user@email.com:password" كاسم مستخدم سيصبح "user%40email.com:password" قبل @ النهائي.

يمكن أن يكون اسم المضيف عبارة عن نطاق مسجل مثل example.com، أو عنوان IP مكتوب بعلامة عشرية منقط مثل 192.0.2.1، أو عنوان IPv6 مضمن بين قوسين مثل [::1]. المنفذ اختياري. إذا تم حذفه، يحدد النظام الإعداد الافتراضي (80 لـ http، 443 لـ https، وما إلى ذلك). نادرًا ما يتم استخدام جزء معلومات المستخدم في عناوين URL الحديثة ولكنه يظل جزءًا من بناء الجملة.

مقاطع المسار ومعنى / - البنية الهرمية ودقة مقطع النقطة

المسار عبارة عن سلسلة من المقاطع مفصولة بخطوط مائلة للأمام. يحتوي المسار /a/b/c على ثلاثة أجزاء: a وb وc. يمكن أن يحتوي كل مقطع على أحرف غير محجوزة، أو أحرف مرمزة بنسبة مئوية، أو أحرف محجوزة معينة تكون آمنة في هذا السياق. يجب ترميز الشرطة المائلة داخل المقطع كـ %2F لتجنب الخلط مع فواصل المقاطع. المسار هرمي؛ فهو يشير ضمنًا إلى أن a هو موقع، وبالتالي فإن a/b أكثر تحديدًا.

تدعم المسارات أيضًا شرائح النقاط الخاصة: النقطة الواحدة (.) تعني "الدليل الحالي" والنقطتان (..) تعني "الدليل الأصلي". مسار مثل ../../etc/passwd يتجه نحو الأعلى. تتجنب عناوين URL الحديثة وHTTP استخدام هذه العناصر، ولكنها موجودة في بناء الجملة. يجب أن يكون مقطع المسار الذي يحتوي على نقطة حرفية أو نقطة مزدوجة مشفرًا بنسبة مئوية إذا لم يكن معنى النقطة الحرفي مقصودًا.

الاستعلام والجزء - اصطلاحات القيمة الرئيسية، وسبب بقاء الجزء في المتصفح

تتبع سلسلة الاستعلام المسار وتبدأ بـ ?. وهي تقليديًا عبارة عن سلسلة من أزواج المفاتيح = القيمة مفصولة بـ &، على الرغم من أن بناء الجملة غير منظم في الواقع - يمكن استخدام أي شيء في الاستعلام. إذا كانت لديك قيمة تحتوي على & أو =، فيجب أن تكون هذه الأحرف مشفرة بنسبة مئوية حتى لا يتم الخلط بينها وبين المحددات. يتم إرسال الاستعلام إلى الخادم. يقرر الخادم ما يجب فعله به.

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

مثال عملي: تشريح عالم حقيقي طويل URL - تسمية كل مكون وكل محدد

خذ URL "https://user:pass@example.com:8080/path/to/page?search=hello&sort=date#results". المخطط هو https. السلطة هي المستخدم:pass@example.com:8080، مقسمة إلى معلومات المستخدم (user:pass)، المضيف (example.com) والمنفذ (8080). المسار هو /path/to/page, مع مسار المقاطع، إلى وصفحة. الاستعلام هو search=hello&sort=date، ويحتوي على معلمتين، الجزء عبارة عن نتائج. أدخل هذا URL في برنامج التشفير ووحدة فك التشفير URL لترى كيف تقوم الأداة بتسمية كل مكون وترميزه.

إذا كان البحث يحتوي على &، مثل ?search=R&D، فإنه يصبح ?search=R%26D عند تشفيره بشكل صحيح. لا تنشئ الأحرف المشفرة بنسبة مئوية حدودًا مرئية في النص، لذا يعد التشفير وفك التشفير الدقيق أمرًا ضروريًا للغاية للتحليل الصحيح.

ما لا يغطيه هذا هو الدقة المرجعية النسبية والأنظمة الخاصة مثل mailto: والبيانات:

المراجع النسبية مثل "../page" أو "?query=value" صالحة داخل HTML ويتم تفسيرها بالنسبة للمستند الحالي، ولكن لها قواعد تحليل منفصلة خاصة بها. المخططات الخاصة مثل mailto: وdata: وfile: تتبع قواعد مختلفة تمامًا ولا تمثل عناوين URL مطلقة قياسية.

يركز هذا المنشور فقط على البنية القياسية المطلقة URL التي أظهرها المفتش. تحتاج المراجع النسبية إلى قاعدة URL قبل أن يتم تفسير مكوناتها، في حين أن الأنظمة مثل mailto والبيانات لا تشترك في نفس شكل الاستناد والمسار. يؤدي الاحتفاظ بهذه الحالات منفصلة إلى منع تطبيق القاعدة التي تم تعلمها من عنوان HTTPS بشكل أعمى على بناء الجملة باستخدام محددات أو خطوات حل أو سلوك نقل مختلف.

الوجبات الجاهزة: تعرف على المكون قبل التشفير - كيف يتم ربط أوضاع القيمة الفردية والعنوان الكامل لجهاز التشفير ووحدة فك التشفير URL بهذه البنية

يحدد المكون الذي تقوم بتشفيره أي الأحرف تحتاج إلى الهروب وأيها آمن. الشرطة المائلة هي بناء جملة حرفي في المسار، لذا يجب أن تكون الشرطة المائلة في القيمة %2F. في الاستعلامات، يجب ترميز & و= إذا ظهرت في القيم. يشتمل برنامج التشفير ووحدة فك التشفير URL على وضعين: "المكون" لتشفير قيمة واحدة، و"العنوان بالكامل" لـ URL كاملة. استخدم وضع المكون عند إنشاء عناوين URL عن طريق تسلسل الأجزاء؛ استخدم وضع العنوان بالكامل للتحقق من URL الموجود.

تتيح لك معرفة المكونات الخمسة ومحدداتها الاختيار الصحيح في كل مرة تواجه فيها مهمة تشفير.