لا يمكن أن تكون بعض الأحرف جزءًا من عنوان URL (مثل المسافة)، وبعض الأحرف الأخرى لها معنى خاص في عنوان URL. في نماذج HTML، يُستخدم الحرف =
للفصل بين الاسم والقيمة. تستخدم البنية العامة لمعرّف الموارد المنتظم (URI) ترميز عنوان URL
للتعامل مع هذه المشكلة، بينما تُجري نماذج HTML بعض عمليات الاستبدال الإضافية
بدلاً من تطبيق ترميز النسبة المئوية لجميع هذه الأحرف.
على سبيل المثال، يتم ترميز المسافات في سلسلة باستخدام %20 أو استبدالها بعلامة الجمع (+). إذا كنت تستخدم حرف الخط العمودي (|) كفاصل، تأكَّد من ترميزه على النحو التالي: %7C. يجب ترميز الفاصلة في السلسلة على النحو التالي: %2C.
ننصحك باستخدام مكتبات إنشاء عناوين URL العادية في منصتك لترميز عناوين URL تلقائيًا، وذلك لضمان تجاوز عناوين URL بشكل صحيح في منصتك.
إنشاء عنوان URL صالح
قد تعتقد أنّ عنوان URL "الصالح" هو أمر بديهي، ولكنّ الأمر ليس كذلك. على سبيل المثال، قد يحتوي عنوان URL الذي يتم إدخاله في شريط العناوين في المتصفّح على رموز خاصة (مثل "上海+中國")، ويحتاج المتصفّح إلى ترجمة هذه الرموز داخليًا إلى ترميز مختلف قبل إرسالها.
وبالمثل، فإنّ أي رمز ينشئ أو يقبل إدخال UTF-8 قد يتعامل مع عناوين URL التي تحتوي على أحرف UTF-8 على أنّها "صالحة"، ولكنّه سيحتاج أيضًا إلى ترجمة هذه الأحرف قبل إرسالها إلى خادم ويب.
تُعرف هذه العملية باسم
ترميز عنوان URL أو الترميز بالنسبة المئوية.
الرموز الخاصة
نحتاج إلى ترجمة الرموز الخاصة لأنّ جميع عناوين URL يجب أن تتوافق مع البنية المحدّدة في مواصفات معرّف الموارد المنتظم (URI). وهذا يعني أنّ عناوين URL يجب أن تحتوي فقط على مجموعة فرعية خاصة من أحرف ASCII، وهي الرموز الأبجدية الرقمية المألوفة وبعض الأحرف المحجوزة لاستخدامها كأحرف تحكّم ضمن عناوين URL. يلخّص هذا الجدول هذه الأحرف:
| ضبط | الأحرف | استخدام عناوين URL |
|---|---|---|
| أحرف أبجدية رقمية | a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 | السلاسل النصية واستخدام المخطط (http) والمنفذ (8080) وما إلى ذلك |
| غير محجوز | - _ . ~ | سلاسل نصية |
| تم الحجز | ! * ' ( ) ; : @ & = + $ , / ? % # [ ] | أحرف التحكّم و/أو السلاسل النصية |
عند إنشاء عنوان URL صالح، يجب التأكّد من أنّه يحتوي فقط على الأحرف المعروضة في الجدول. يؤدي تعديل عنوان URL لاستخدام هذه المجموعة من الأحرف بشكل عام إلى مشكلتَين، إحداهما تتعلق بالحذف والأخرى بالاستبدال:
- الأحرف التي تريد معالجتها موجودة خارج المجموعة المذكورة أعلاه. على سبيل المثال، يجب ترميز الأحرف باللغات الأجنبية، مثل
上海+中國، باستخدام الأحرف المذكورة أعلاه. وفقًا للعرف الشائع، غالبًا ما يتم تمثيل المسافات (غير المسموح بها في عناوين URL) باستخدام حرف الجمع'+'أيضًا. - تتوفّر الأحرف ضمن المجموعة أعلاه كأحرف محجوزة،
ولكن يجب استخدامها حرفيًا.
على سبيل المثال، يتم استخدام
?ضمن عناوين URL للإشارة إلى بداية سلسلة طلب البحث. إذا أردت استخدام السلسلة "? and the Mysterions"، عليك ترميز الحرف'?'.
يتم ترميز جميع الأحرف التي سيتم ترميزها في عنوان URL
باستخدام حرف '%' وقيمة سداسية عشرية مكوّنة من حرفين
تتوافق مع حرف UTF-8. على سبيل المثال،
سيتم ترميز 上海+中國 في UTF-8 كعنوان URL على النحو التالي:
%E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B. يتم ترميز السلسلة ? and the Mysterians بنظام عناوين URL على النحو التالي: %3F+and+the+Mysterians أو %3F%20and%20the%20Mysterians.
الرموز الشائعة التي تحتاج إلى ترميز
في ما يلي بعض الرموز الشائعة التي يجب ترميزها:
| شخصية غير آمنة | القيمة المشفّرة |
|---|---|
| مسافة | %20 |
| " | %22 |
| < | %3C |
| > | %3E |
| # | %23 |
| % | %25 |
| | | %7C |
قد يكون تحويل عنوان URL الذي تتلقّاه من إدخال المستخدم أمرًا صعبًا في بعض الأحيان. على سبيل المثال، قد يُدخل المستخدم عنوانًا مثل "5th&Main St." بشكل عام، يجب إنشاء عنوان URL من أجزائه، مع التعامل مع أي إدخال من المستخدم كأحرف حرفية.
بالإضافة إلى ذلك، يقتصر طول عناوين URL على 16, 384 حرفًا لجميع خدمات الويب وواجهات برمجة التطبيقات الثابتة على الويب في "منصة خرائط Google". بالنسبة إلى معظم الخدمات، نادرًا ما يتم الوصول إلى هذا الحدّ الأقصى لعدد الأحرف. ومع ذلك، يُرجى العِلم أنّ بعض الخدمات تتضمّن عدة مَعلمات قد تؤدي إلى إنشاء عناوين URL طويلة.