HTTP URL Encoding
ترميز URL لـ HTTP
في هذا الدرس، سنتعرف على ترميز URL لـ HTTP، وسنناقش لماذا نحتاج لترميز URL لضمان الأمان وسهولة الوصول. وسنستعرض أيضًا جدولًا يوضح ترميز ASCII للأحرف غير المطبوعة في URL لضمان نقلها ومعالجتها بكفاءة.
التاريخ
05 أبريل 2024
الدروس
51
المستوى
متقدم
اللغة
انجليزي
المشاهدات
412
المواضيع
4
الشروحات chevron_left HTTP URL Encoding chevron_left Web Technology
HTTP URL Encoding
ترميز URL لـ HTTP
</>
HTTP URL Encoding
ترميز URL لـ HTTP
عنوان URL، أو مُحدد موقع الموارد الموحد Uniform Resource Locator، هو الرابط الذي يُستخدم للوصول إلى أي مورد على الإنترنت، سواء كان صفحة ويب، صورة، أو ملفاً. يلعب الترميز دورًا حيويًا في تسهيل قراءة هذه العناوين وفهمها من قبل أنظمة الحاسب، مما يضمن توجيه الطلبات إلى الوجهة الصحيحة دون التعرض لأخطاء ناتجة عن الأحرف الخاصة أو المسافات. في هذا السياق، يُعرف ترميز URL لـ HTTP بترميز النسبة المئوية، وهو عملية تحويل الأحرف في عنوان URL إلى تنسيق آمن ومقبول لنقلها عبر الإنترنت لضمان معالجة كل جزء من العنوان بشكل صحيح، خاصة الأحرف التي لها معانٍ خاصة في URLs.
أثناء عملية الترميز، تُستبدل بعض الأحرف المحجوزة أو غير الآمنة بسلسلة رمزية باستخدام النسبة المئوية. يتم استخدام رمز النسبة المئوية "%" يليه رقمين بالأرقام السداسية عشرية [hexadecimal]، ليمثل القيمة الرقمية للحرف وفق جدول [ASCII]. على سبيل المثال، تتحول المسافة [Space] إلى "%20"، بينما تُحوّل علامة التعجب "!" إلى "%21".
الهدف من ترميز عناوين URL هو التعامل مع الأحرف مثل المسافات والرموز الخاصة التي لها معانٍ محددة في سياق عناوين URL. باستخدام URL Encoding، يمكن ترميز هذه الأحرف بشكل يضمن بقاء معناها صحيحًا دون التباس، مما يضمن تفسير كل جزء من URL بشكل دقيق عند استلامه ومعالجته من قبل الخادم.
ملاحظات
- [ASCII]، أو "الكود القياسي الأمريكي لتبادل المعلومات"، "American Standard Code for Information Interchange"، هو نظام لترميز الأحرف يُستخدم في الحاسوب لتسهيل تبادل البيانات بين الأجهزة والبرمجيات. يتضمن [ASCII] 128 رمزًا، منها رموز التحكم التي تتراوح قيمها من [0 إلى 31]، وتُستخدم لإدارة عمليات النصوص وتنظيم تدفق البيانات مثل بدء النص أو إنهائه والانتقال إلى سطر جديد. بالإضافة إلى ذلك، يشمل [ASCII] الأحرف القابلة للطباعة مثل الحروف الإنجليزية والأرقام وعلامات الترقيم من [32 إلى 126]. تسهم هذه الرموز في تمكين الأنظمة من تبادل المعلومات بسلاسة وفعالية.
- الأحرف المحجوزة أو غير الآمنة في عناوين URL هي الأحرف التي لها معنى خاص وتحتاج إلى الترميز لضمان تفسيرها ومعالجتها بشكل صحيح على شبكة الإنترنت. على سبيل المثال، يتم ترميز المسافات كـ "%20"، وعلامات الترقيم مثل علامة التعجب "!" كـ "%21". يتم اتخاذ هذه التدابير لتجنب التفسيرات غير الصحيحة التي قد تحدث إذا استخدمت هذه الأحرف دون ترميز.
</>
?Why do we need URL encoding
لماذا نحتاج لترميز URL؟
نحتاج لترميز URL لأسباب متعددة تتعلق بكيفية معالجة ونقل البيانات بشكل آمن وصحيح عبر الإنترنت. إليك بعض الأسباب الرئيسية:
- تجنب الأخطاء في معالجة البيانات: تحتوي عناوين URL أحيانًا على أحرف لها وظائف خاصة مثل [? و &] يتم استخدامها لتحديد أقسام معينة من العنوان. إذا لم تُرمّز الأحرف الأخرى التي تشبه هذه الرموز، قد يؤدي ذلك إلى تفسيرات خاطئة.
- حماية الأحرف غير المسموح بها: بعض الأحرف غير مسموح باستخدامها مباشرة في عناوين URL مثل [المسافات وعلامات الترقيم مثل [# و %]. ترميز URL يضمن تحويل هذه الأحرف إلى تنسيق مقبول وهو ترميز النسبة المئوية.
- ضمان سلامة البيانات أثناء النقل: عند نقل البيانات عبر الإنترنت يمكن أن تتسبب بعض الأحرف الخاصة في إرباك الأنظمة أو إساءة تفسير البيانات. ترميز URL يساعد في الحفاظ على سلامة البيانات ويحميها من الفقدان أو التشويه.
- التكيف مع مختلف أنظمة التشغيل والمتصفحات: ليس كل الأنظمة والمتصفحات تتعامل مع عناوين URL بالطريقة ذاتها. يضمن ترميز URL أن تتمكن جميع الأجهزة والبرامج من فهم العنوان بنفس الطريقة، بغض النظر عن القواعد المحلية للنظام أو المتصفح.
- دعم اللغات الدولية: يستخدم ترميز URL للسماح بإدراج الأحرف الخاصة بلغات غير الإنجليزية، مما يوسع إمكانية الوصول إلى الموارد على الإنترنت لمستخدمي جميع اللغات.
</>
ASCII Encoding Table for Non-Printable Characters in URL
جدول ترميز ASCII للأحرف غير المطبوعة في URL
لماذا يبدأ الجدول بالرقم 32 في ترميز ASCII لعناوين URL؟
الأرقام الأقل من 32 في [ASCII] تُعتبر رموز تحكم، مثل إشارات بداية النص ونهاية النص، وهي ليست أحرفًا قابلة للطباعة. عند الحاجة لاستخدام هذه الرموز في سياقات مثل [URL]، يجب ترميزها لضمان عدم تفسيرها بشكل خاطئ.
لذلك، يتم استخدام صيغة النسبة المئوية %xx، حيث يمثل "%" استخدام الترميز، و "xx" هو الاستبدال السداسي عشري للقيمة [ASCII]. على سبيل المثال، رمز [ASCII] للعدد 10، الذي يشير إلى سطر جديد، يتم ترميزه في [URL] كـ %0A لأن 0A هو التمثيل السداسي عشري للعدد 10. يضمن هذا الأسلوب سلامة البيانات ويمنع أي تأثيرات غير مرغوبة عند نقل أو معالجة النصوص.
لذلك، يتم استخدام صيغة النسبة المئوية %xx، حيث يمثل "%" استخدام الترميز، و "xx" هو الاستبدال السداسي عشري للقيمة [ASCII]. على سبيل المثال، رمز [ASCII] للعدد 10، الذي يشير إلى سطر جديد، يتم ترميزه في [URL] كـ %0A لأن 0A هو التمثيل السداسي عشري للعدد 10. يضمن هذا الأسلوب سلامة البيانات ويمنع أي تأثيرات غير مرغوبة عند نقل أو معالجة النصوص.
الحرف | الرمز ASCII | ترميز URL |
space | 32 | %20 أو + |
! | 33 | %21 |
" | 34 | %22 |
# | 35 | %23 |
$ | 36 | %24 |
% | 37 | %25 |
& | 38 | %26 |
' | 39 | %27 |
( | 40 | %28 |
) | 41 | %29 |
* | 42 | %2A |
+ | 43 | %2B |
, | 44 | %2C |
- | 45 | - |
. | 46 | . |
/ | 47 | %2F |
0 | 48 | 0 |
1 | 49 | 1 |
2 | 50 | 2 |
3 | 51 | 3 |
4 | 52 | 4 |
5 | 53 | 5 |
6 | 54 | 6 |
7 | 55 | 7 |
8 | 56 | 8 |
9 | 57 | 9 |
: | 58 | %3A |
; | 59 | %3B |
< | 60 | %3C |
= | 61 | %3D |
> | 62 | %3E |
? | 63 | %3F |
@ | 64 | %40 |
A | 65 | A |
B | 66 | B |
C | 67 | C |
D | 68 | D |
E | 69 | E |
F | 70 | F |
G | 71 | G |
H | 72 | H |
I | 73 | I |
J | 74 | J |
K | 75 | K |
L | 76 | L |
M | 77 | M |
N | 78 | N |
O | 79 | O |
P | 80 | P |
Q | 81 | Q |
R | 82 | R |
S | 83 | S |
T | 84 | T |
U | 85 | U |
V | 86 | V |
W | 87 | W |
X | 88 | X |
Y | 89 | Y |
Z | 90 | Z |
[ | 91 | %5B |
\ | 92 | %5C |
] | 93 | %5D |
^ | 94 | %5E |
_ | 95 | _ |
` | 96 | %60 |
a | 97 | a |
b | 98 | b |
c | 99 | c |
d | 100 | d |
e | 101 | e |
f | 102 | f |
g | 103 | g |
h | 104 | h |
i | 105 | i |
j | 106 | j |
k | 107 | k |
l | 108 | l |
m | 109 | m |
n | 110 | n |
o | 111 | o |
p | 112 | p |
q | 113 | q |
r | 114 | r |
s | 115 | s |
t | 116 | t |
u | 117 | u |
v | 118 | v |
w | 119 | w |
x | 120 | x |
y | 121 | y |
z | 122 | z |
{ | 123 | %7B |
| | 124 | %7C |
} | 125 | %7D |
~ | 126 | %7E |
DEL | 127 | %7F |
ملاحظات
- الرموز من 32 إلى 126: تشمل الأحرف القابلة للطباعة، بما في ذلك الحروف الكبيرة capital letters والصغيرة small letters، الأرقام، وعلامات الترقيم.
- في ترتيب ASCII: تُستخدم الأرقام من 0 إلى 9 بشكل مباشر في عناوين URL دون الحاجة إلى تغيير أو ترميز خاص، حيث يتم تمثيلها كما هي. أيضاً تُستخدم الأحرف الكبيرة capital letters من A إلى Z والأحرف الصغيرة small letters من a إلى z بصيغتها الأصلية دون الحاجة إلى ترميز. هذا يعني أن هذه الأحرف والأرقام تُعتبر آمنة لاستخدامها مباشرة في تكوين عناوين URL، لأنها لا تحمل دلالات خاصة تستدعي ترميزها.
- الرقم 127 في ترتيب ASCII: يُعرف برمز الحذف [DEL] delete. هذا الرمز ليس حرفًا نراه في النصوص مثل الحروف العادية أو الأرقام، بل هو رمز تحكم يُستخدم لحذف أو إزالة البيانات وغير قابل للطباعة. وعندما نستخدم هذا الرمز في عناوين URL، فإنه يتم تمثيله بـ"%7F". لضمان تفسيره بشكل صحيح في سياقات الشبكة.
- تدفق البيانات: يشير إلى رموز التحكم في نظام [ASCII] والتي تُستخدم لتنظيم وإدارة حركة البيانات أثناء نقلها أو معالجتها بين أجزاء الحواسيب والأنظمة المختلفة. تتضمن هذه الرموز أمثلة مثل إشارة لبدء نص [STX]، إشارة لنهاية نص [ETX]، وإشارة إيقاف [STOP]. تستخدم هذه الرموز كأوامر توجيهية تساعد في تنظيم العمليات، بحيث تضمن تسلسل وإدارة البيانات بشكل فعّال وآمن داخل النظام.
</>
Control Codes in ASCII for Numbers 0 to 31
رموز التحكم في ASCII للأرقام من 0 إلى 31
هذه الرموز تُستخدم للتحكم في معالجة البيانات والتواصل بين الأجهزة والأنظمة المختلفة، وليس لها تمثيل مرئي كنص مطبوع.
ASCII | الاختصار الشائع | الاسم الكامل للرمز | الوصف |
0 | NUL | Null Character | نهاية النص |
1 | SOH | Start of Heading | بداية العنوان |
2 | STX | Start of Text | بداية النص |
3 | ETX | End of Text | نهاية النص |
4 | EOT | End of Transmission | نهاية النقل |
5 | ENQ | Enquiry | استعلام |
6 | ACK | Acknowledge | تأكيد الاستلام |
7 | BEL | Bell | جرس |
8 | BS | Backspace | مسافة للخلف |
9 | HT | Horizontal Tab | تبويب أفقي |
10 | LF | Line Feed | تغذية الأسطر |
11 | VT | Vertical Tab | تبويب عمودي |
12 | FF | Form Feed | تغذية النماذج |
13 | CR | Carriage Return | العودة إلى بداية السطر |
14 | SO | Shift Out | تبديل للخارج |
15 | SI | Shift In | تبديل للداخل |
16 | DLE | Data Link Escape | هروب الرابط البياني |
17 | DC1 | Device Control 1 | التحكم في الجهاز 1 |
18 | DC2 | Device Control 2 | التحكم في الجهاز 2 |
19 | DC3 | Device Control 3 | التحكم في الجهاز 3 |
20 | DC4 | Device Control 4 | التحكم في الجهاز 4 |
21 | NAK | Negative Acknowledge | عدم تأكيد الاستلام |
22 | SYN | Synchronous Idle | خمول تزامني |
23 | ETB | End of Transmission Block | نهاية كتلة النقل |
24 | CAN | Cancel | إلغاء |
25 | EM | End of Medium | نهاية الوسيط |
26 | SUB | Substitute | استبدال |
27 | ESC | Escape | هروب |
28 | FS | File Separator | فاصل ملفات |
29 | GS | Group Separator | فاصل مجموعات |
30 | RS | Record Separator | فاصل تسجيلات |
31 | US | Unit Separator | فاصل وحدات |