دليل ترميز الروابط URL وفحص توكنات JWT للمطورين
Developer's Guide to URL Percent-Encoding & JSON Web Tokens
🌐 ما هو ترميز الروابط (URL Percent-Encoding) ولماذا نحتاجه؟
🌐 What is URL Percent-Encoding and Why is it Necessary?
وفقاً لمعيار RFC 3986، لا يُسمح لعناوين URL إلا باستخدام مجموعة محددة من محارف ASCII غير المحجوزة (الحروف الإنجليزية، الأرقام، وبعض الرموز مثل - _ . ~). عندما يحتوي الرابط أو معلمات البحث (Query Parameters) على أحرف عربية، مسافات، أو رموز محجوزة مثل & = ? /، يجب تحويلها إلى ترميز النسبة المئوية (Percent-Encoding) لضمان مرورها عبر خوادم الويب والمتصفحات دون تلف أو اختلاط في معاني المعلمات.
According to the RFC 3986 standard, URLs are restricted to a limited subset of ASCII characters. Characters outside this range—such as non-Latin alphabets, spaces, and reserved protocol delimiters (? & = /)—must be percent-encoded (e.g., spaces become %20).
🛡️ ما هو توكن JWT وهل هو مشفر أم مرمّز فقط؟
🛡️ Understanding JWT: Is It Encrypted or Just Encoded?
توكن JSON Web Token (JWT - RFC 7519) هو وسيلة مدمجة وآمنة لنقل المطالبات (Claims) بين أطراف المعاملات الرقمية بتنسيق JSON. يتكون رمز JWT من 3 أجزاء مفصولة بنقاط (Header.Payload.Signature):
A JSON Web Token (JWT - RFC 7519) is an open industry standard for securely transmitting verified claims as a compact JSON object. A JWT string consists of three parts separated by dots:
تحدد خوارزمية التوقيع (مثل HS256 أو RS256) ونوع التوكن (JWT). مرمزة بـ Base64URL.
تحتوي على بيانات المستخدم وتاريخ الانتهاء exp ومصدر الإصدار iss. مرمزة بـ Base64URL وليست مشفرة!
تجزئة رياضية مشفرة بمفتاح سري لدى الخادم لضمان عدم تلاعب أي طرف بمحتوى التوكن.
❓ الأسئلة الشائعة
❓ Frequently Asked Questions
ما الفرق بين encodeURI و encodeURIComponent في جافاسكريبت؟
تقوم encodeURI بترميز الرابط بالكامل مع الإبقاء على رموز البروتوكول الأساسية (مثل :// ? & =)، بينما تقوم encodeURIComponent بترميز كل الرموز بما فيها علامات الاستفهام والشرطات المائلة، وهي الخيار الصحيح عند تجهيز قيمة مفردة لتمريرها داخل Query Parameter.
هل تفحص أداة WebBox صحة التوقيع الرقمي (Signature) للتوكن؟
تقوم الأداة بفك وقراءة الترويسة والبيانات والتحقق من تاريخ الصلاحية exp محلياً. للتحقق من صحة التوقيع التشفيري، يتطلب ذلك امتلاك المفتاح السري الخاص بالخادم (Secret / Private Key)، ولحماية أمانك وخصوصيتك لا نطلب أبداً إدخال مفاتيح سرية عبر المتصفح.
هل يتم حفظ روابطي أو التوكنات على أي خادم؟
مطلقاً. جميع العمليات تتم محلياً في ذاكرة متصفحك عبر دوال JavaScript القياسية ودوال Base64URL. لا يتم إرسال أي رابط أو توكن أو مفتاح جلسة لأي جهة.