انتقل إلى محتوى الدرس
الدرس 49
دورة تكنولوجيا الويب

ترميز URL لـ HTTPHTTP URL Encoding

في هذا الدرس، سنتعرف على ترميز URL لـ HTTP، وسنناقش لماذا نحتاج لترميز URL لضمان الأمان وسهولة الوصول. وسنستعرض أيضًا جدولًا يوضح ترميز ASCII للأحرف غير المطبوعة في URL لضمان نقلها ومعالجتها بكفاءة.
أقسام الدرس
4
الأمثلة
0
اللغة
العربية
تاريخ النشر
المشاهدات
1,660
محتوى الدرس
في هذا الدرس 4تصفّح المواضيع

HTTP URL Encoding ترميز URL لـ HTTP

عنوان URL، أو مُحدد موقع الموارد الموحد Uniform Resource Locator، هو الرابط الذي يُستخدم للوصول إلى أي مورد على الإنترنت، سواء كان صفحة ويب، صورة، أو ملفاً. يلعب الترميز دورًا حيويًا في تسهيل قراءة هذه العناوين وفهمها من قبل أنظمة الحاسب، مما يضمن توجيه الطلبات إلى الوجهة الصحيحة دون التعرض لأخطاء ناتجة عن الأحرف الخاصة أو المسافات. في هذا السياق، يُعرف ترميز URL لـ HTTP بترميز النسبة المئوية، وهو عملية تحويل الأحرف في عنوان URL إلى تنسيق آمن ومقبول لنقلها عبر الإنترنت لضمان معالجة كل جزء من العنوان بشكل صحيح، خاصة الأحرف التي لها معانٍ خاصة في URLs.

أثناء عملية الترميز، تُستبدل بعض الأحرف المحجوزة أو غير الآمنة بسلسلة رمزية باستخدام النسبة المئوية. يتم استخدام رمز النسبة المئوية "%" يليه رقمين بالأرقام السداسية عشرية [hexadecimal]، ليمثل قيمة بايت واحد. تغطي ASCII بعض الأحرف فقط؛ النص العربي وغيره يرمز عادةً إلى بايتات UTF-8، وقد يحتاج الحرف الواحد إلى عدة مجموعات %HH. على سبيل المثال، تتحول المسافة [Space] إلى "%20"، بينما تُحوّل علامة التعجب "!" إلى "%21".

الهدف من ترميز عناوين URL هو التعامل مع الأحرف مثل المسافات والرموز الخاصة التي لها معانٍ محددة في سياق عناوين URL. باستخدام URL Encoding، يمكن ترميز هذه الأحرف بشكل يضمن بقاء معناها صحيحًا دون التباس، مما يضمن تفسير كل جزء من URL بشكل دقيق عند استلامه ومعالجته من قبل الخادم.

هذا ترميز وليس تشفيرًا أو وسيلة لإخفاء البيانات. مثال: الحرف أ بترميز UTF-8 يصبح %D8%A3. يتحدد ما يحتاج إلى ترميز بحسب مكون URL؛ لا ترمّز العنوان كله عشوائيًا.

?Why do we need URL encoding لماذا نحتاج لترميز URL؟

نحتاج لترميز URL لأسباب متعددة تتعلق بكيفية معالجة ونقل البيانات بشكل آمن وصحيح عبر الإنترنت. إليك بعض الأسباب الرئيسية:

  • تجنب الأخطاء في معالجة البيانات: تحتوي عناوين URL أحيانًا على أحرف لها وظائف خاصة مثل [? و &] يتم استخدامها لتحديد أقسام معينة من العنوان. إذا لم تُرمّز الأحرف الأخرى التي تشبه هذه الرموز، قد يؤدي ذلك إلى تفسيرات خاطئة.

  • حماية الأحرف غير المسموح بها: المسافة لا تكتب حرفيًا في URI. أما # فيفصل fragment، و% يبدأ مجموعة ترميز؛ إذا أريد الحرف نفسه كبيانات داخل المكون، يرمّز إلى %23 أو %25 بدل استخدامه كفاصل. ترميز URL يضمن تحويل هذه الأحرف إلى تنسيق مقبول وهو ترميز النسبة المئوية.

  • ضمان سلامة البيانات أثناء النقل: عند نقل البيانات عبر الإنترنت يمكن أن تتسبب بعض الأحرف الخاصة في إرباك الأنظمة أو إساءة تفسير البيانات. ترميز URL يساعد في الحفاظ على سلامة البيانات ويحميها من الفقدان أو التشويه.

  • التكيف مع مختلف أنظمة التشغيل والمتصفحات: ليس كل الأنظمة والمتصفحات تتعامل مع عناوين URL بالطريقة ذاتها. يضمن ترميز URL أن تتمكن جميع الأجهزة والبرامج من فهم العنوان بنفس الطريقة، بغض النظر عن القواعد المحلية للنظام أو المتصفح.

  • دعم اللغات الدولية: يستخدم ترميز URL للسماح بإدراج الأحرف الخاصة بلغات غير الإنجليزية، مما يوسع إمكانية الوصول إلى الموارد على الإنترنت لمستخدمي جميع اللغات.

ASCII URL Encoding Table for Codes 32–127 جدول ترميز ASCII في URL للقيم32–127

لماذا يبدأ الجدول بالرقم 32 في ترميز ASCII لعناوين URL؟
الأرقام الأقل من 32 في [ASCII] تُعتبر رموز تحكم، مثل إشارات بداية النص ونهاية النص، وهي ليست أحرفًا قابلة للطباعة. عند الحاجة لاستخدام هذه الرموز في سياقات مثل [URL]، يجب ترميزها لضمان عدم تفسيرها بشكل خاطئ.

لذلك، يتم استخدام صيغة النسبة المئوية %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


الجدول يعرض المقابل عند الحاجة إلى ترميز الحرف كبيانات. الأحرف غير المحجوزة تشمل الحروف والأرقام و- و. و_ و~ ولا تحتاج إلى ترميز. + يعني مسافة في application/x-www-form-urlencoded، ومنها ترميز نماذج الاستعلام، لكنه ليس بديلًا عامًا للمسافة داخل المسار. لترميز علامة الجمع نفسها في نموذج استخدم %2B.

Control Codes in ASCII for Numbers 0 to 31 رموز التحكم في ASCII للأرقام من 0 إلى 31

هذه الرموز تُستخدم للتحكم في معالجة البيانات والتواصل بين الأجهزة والأنظمة المختلفة، وليس لها تمثيل مرئي كنص مطبوع.
ASCII الاختصار الشائع الاسم الكامل للرمز الوصف
0 NUL Null Character المحرف الصفري؛ قد ينهي سلسلة نصية في لغات مثل C، وليس رمز ETX لنهاية النص
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 فاصل وحدات


مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…