كيفية تشفير وفك تشفير عناوين URL
إذا رأيت يومًا %20 في عنوان URL حيث كان من المفترض أن تكون مسافة، أو %C3%A9 حيث كان حرف مع علامة تشكيل، فقد واجهت تشفير URL. إنه لبنة أساسية للويب، وفهمه يساعد في تصحيح الروابط المعطلة ومشاكل API وإرسالات النماذج.
ما يفعله تشفير URL
يمكن أن تحتوي عناوين URL على مجموعة محدودة من الأحرف الآمنة فقط: الحروف (A-Z وa-z) والأرقام (0-9) وبعض الأحرف الخاصة (- و_ و. و~). كل شيء آخر — المسافات والتشكيلات والإيموجي والرموز مثل & و= و# و? — يجب تحويله إلى تنسيق آمن.
يستبدل تشفير URL (الذي يسمى أيضًا percent-encoding) الأحرف غير الآمنة بـ % متبوعًا بقيمتها السداسية العشرية بالبايت:
| الحرف | المشفَّر |
|---|---|
| مسافة | %20 |
| & | %26 |
| = | %3D |
| # | %23 |
| ? | %3F |
| / | %2F |
| @ | %40 |
متى يكون تشفير URL ضروريًا
- معلمات الاستعلام بأحرف خاصة — استعلام مثل
price > 100 & category = shoesيحتاج إلى تشفير ليعمل في عنوان URL - الأحرف غير اللاتينية في عناوين URL — يجب تشفير الأسماء أو المدن أو المحتوى بلغات أخرى
- طلبات API — عند بناء استدعاءات API يدويًا، تحتاج قيم المعلمات غالبًا إلى تشفير
- تصحيح الأخطاء — عندما لا يعمل عنوان URL، فك تشفيره يكشف القيم الحقيقية
كيفية التشفير وفك التشفير
- اختر التشفير أو فك التشفير — حدّد الاتجاه. اختر encodeURIComponent لمعلمات الاستعلام أو encodeURI لعناوين URL الكاملة.
- الصق إدخالك — أدخل النص أو عنوان URL. تُحدَّث النتيجة فورًا.
- انسخ المخرج — استخدم النتيجة في كودك أو طلب API أو متصفّحك.
نصائح
- شفّر القيم، وليس عناوين URL الكاملة — إذا شفّرت عنوان URL كاملًا، فستُشفَّر أيضًا الشرطات المائلة والنقطتان اللذان يهيكلان عنوان URL، مما يكسره. شفّر فقط القيم داخل معلمات الاستعلام.
- التشفير المزدوج — تشفير سلسلة مشفّرة بالفعل ينتج أشياء مثل
%2520(تصبح%هي%25). إذا بدا عنوان URL خاطئًا، تحقّق مما إذا كان شيء مشفّر مرتين. - فك التشفير لتصحيح الأخطاء — عندما يفشل طلب API أو يبدو عنوان URL غير قابل للقراءة، فك تشفيره لرؤية القيم الحقيقية. هذا يكشف غالبًا المشكلة فورًا.
- استخدم الوظائف المدمجة في لغتك — في كود الإنتاج، استخدم دائمًا
encodeURIComponent()(JavaScript) أوurllib.parse.quote()(Python) أوURLEncoder.encode()(Java) بدلًا من التشفير يدويًا.
الأسئلة الشائعة
ما الفرق بين encodeURI وencodeURIComponent؟
تحافظ encodeURI على الأحرف الصالحة في بنية URL (الشرطات المائلة، النقطتان، علامات الاستفهام). تشفّر encodeURIComponent كل شيء باستثناء الحروف والأرقام وبعض الأحرف الآمنة. استخدم encodeURIComponent لقيم معلمات الاستعلام، وencodeURI لعناوين URL الكاملة.
لماذا تصبح المسافات %20 أو +؟
في تشفير URL، تصبح المسافات %20. في بيانات النموذج (application/x-www-form-urlencoded)، تصبح المسافات +. كلاهما صالح في سياقاتهما، لكن %20 هو المعيار العالمي لعناوين URL.
هل يجب أن أشفّر عناوين URL يدويًا؟
في معظم الحالات، تتعامل لغتك أو إطار عملك مع التشفير تلقائيًا. التشفير اليدوي مفيد عند بناء عناوين URL يدويًا، أو تصحيح طلبات API، أو العمل مع سلاسل استعلام تحتوي على أحرف خاصة.
هل يتم إرسال بياناتي إلى خادم؟
لا. يتم كل التشفير وفك التشفير في متصفّحك.