لا يمكن أن تكون بعض الأحرف جزءًا من عنوان URL (مثل المسافة)، ولبعض الأحرف الأخرى معنى خاص في عنوان URL. في نماذج HTML، يتم استخدام الحرف =
للفصل بين الاسم والقيمة. يستخدم التركيب العام لمعرّف الموارد الموحّد ترميز عنوان 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 على شكل %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B
في عنوان URL. سيتم ترميز السلسلة ? and the Mysterians
بنظام عناوين URL على النحو التالي: %3F+and+the+Mysterians
أو %3F%20and%20the%20Mysterians
.
الأحرف الشائعة التي يجب ترميزها
بعض الأحرف الشائعة التي يجب ترميزها هي:
حرف غير آمن | القيمة المشفرة |
---|---|
مسافة | %20 |
" | %22 |
< | %3C |
> | %3E |
# | %23 |
% | %25 |
| | %7C |
قد يكون تحويل عنوان URL الذي تتلقّاه من إدخال المستخدم أمرًا صعبًا في بعض الأحيان. على سبيل المثال، قد يُدخل المستخدم عنوانًا على النحو التالي: "شارع 5 وشارع Main". بشكل عام، يجب إنشاء عنوان URL من أجزائه، مع التعامل مع أي إدخال من المستخدم كأحرف حرفية.
بالإضافة إلى ذلك، يقتصر عدد الأحرف في عناوين URL على 16384 حرفًا لجميع خدمات الويب الثابتة وخدمات الويب في "منصة خرائط Google". في معظم الخدمات، نادرًا ما يتم بلوغ الحدّ الأقصى لعدد الأحرف. ومع ذلك، تجدر الإشارة إلى أنّ بعض الخدمات تتضمّن عدة مَعلمات قد تؤدي إلى إنشاء عناوين URL طويلة.