Mã hóa URL trong HTTP là việc dịch các ký tự không thể in được hoặc có ý nghĩa đặc biệt trong URL thành một đại diện được chấp nhận bởi hầu hết các máy chủ và trình duyệt. Điều này là cần thiết để tránh gặp các lỗ hổng bảo mật từ URL mà browser sử dụng.
1. Mã hóa các ký tự trong URL
Việc mã hóa ký tự trong URL là việc dịch các ký tự đặc biệt trong URL về một chuẩn chung để web server và browser có thể hiểu được. Có các loại ký tự dưới đây:
- Các ký tự điều khiển ASCII - Các ký hiệu không in được tiêu biểu sử dụng cho điều khiển tín hiệu ra. Dãy này là một phần của bộ ký tự ISO-Latin và bao gồm toàn bộ nửa trên cùng của bộ ISO-Latin từ 80-FF thập lục phân (từ 128-255 trong hệ thập phân). Một bảng đầy đủ các mã hóa sẽ được cung cấp bên dưới.
- Các ký tự điều khiển bên ngoài ASCII - Đây là những ký tự ở phần bên ngoài của bộ 128 ký tự ASCII. Dãy này là một phần của bộ ký tự ISO-Latin và bao gồm toàn bộ nửa trên của bộ ISO-Latin từ 80-FF hệ thập lục phân (từ 128-255 trong hệ thập phân). Một bảng đầy đủ sẽ được cung cấp bên dưới.
- Các ký tự dành riêng - Đây là các ký tự đặc biệt như ký hiệu đồng Đôla, dấu cộng, dấu gạch ngang… Tất cả các ký tự này có ý nghĩa khác nhau bên trong một địa chỉ URL, vì thế nó cần thiết được mã hóa. Một bảng đầy đủ sẽ được cung cấp bên dưới.
- Các ký tự không an toàn - Đây là những ký tự như khoảng trống, dấu nhỏ hơn, dấu lớn hơn… Những ký tự này khả năng có thể không được hiểu trong các địa chỉ URL vì các lý do khác nhau. Những ký tự này thường cũng nên được mã hóa. Một bảng đầy đủ sẽ được cung cấp bên dưới.
Các ký hiệu mã hóa thay thế các ký tự bạn muốn với ba ký tự: một dấu phần trăm và hai chữ số thập lục phân tương ứng với các vị trí của các ký tự trong bộ ký tự ASCII.
2. Mã hóa URL trong HTML
Một trong những các ký tự đặc biệt thường dùng là khoảng trống trắng. Bạn không thể gõ một khoảng trống vào trong một địa chỉ URL một cách trực tiếp. Vị trí khoảng trống trong bộ ký tự là 20 trong hệ thập lục phân. Vì thế bạn có thể sử dụng %20 để thay thế cho khoảng trống khi gửi yêu cầu của bạn tới máy chủ.
3. Mã hóa các ký tự ASCII
Hệ thập phân | Giá trị thập lục phân | Ký tự | Mã URL |
0 | 00 | %00 | |
1 | 01 | %01 | |
2 | 02 | %02 | |
3 | 03 | %03 | |
4 | 04 | %04 | |
5 | 05 | %05 | |
6 | 06 | %06 | |
7 | 07 | %07 | |
8 | 08 | backspace | %08 |
9 | 09 | tab | %09 |
10 | 0a | linefeed | %0a |
11 | 0b | %0b | |
12 | 0c | %0c | |
13 | 0d | carriage return | %0d |
14 | 0e | %0e | |
15 | 0f | %0f | |
16 | 10 | %10 | |
17 | 11 | %11 | |
18 | 12 | %12 | |
19 | 13 | %13 | |
20 | 14 | %14 | |
21 | 15 | %15 | |
22 | 16 | %16 | |
23 | 17 | %17 | |
24 | 18 | %18 | |
25 | 19 | %19 | |
26 | 1a | %1a | |
27 | 1b | %1b | |
28 | 1c | %1c | |
29 | 1d | %1d | |
30 | 1e | %1e | |
31 | 1f | %1f | |
127 | 7f | %7f |
>>> Xem thêm bài viết:
- HTTP là gì? Tìm hiểu về giao thức HTTP và HTTPS
- HTTP request là gì? Các phương thức HTTP request
- Hướng dẫn cài đặt unix linux
4. Mã hóa các ký tự Non-ASCII
Hệ thập phân | Giá trị thập lục phân | Ký tự | Mã URL |
128 | 80 | € | %80 |
129 | 81 | | %81 |
130 | 82 | ‚ | %82 |
131 | 83 | ƒ | %83 |
132 | 84 | „ | %84 |
133 | 85 | … | %85 |
134 | 86 | † | %86 |
135 | 87 | ‡ | %87 |
136 | 88 | ˆ | %88 |
137 | 89 | ‰ | %89 |
138 | 8a | Š | %8a |
139 | 8b | ‹ | %8b |
140 | 8c | Œ | %8c |
141 | 8d | | %8d |
142 | 8e | Ž | %8e |
143 | 8f | | %8f |
144 | 90 | | %90 |
145 | 91 | ‘ | %91 |
146 | 92 | ’ | %92 |
147 | 93 | “ | %93 |
148 | 94 | ” | %94 |
149 | 95 | • | %95 |
150 | 96 | – | %96 |
151 | 97 | — | %97 |
152 | 98 | ˜ | %98 |
153 | 99 | ™ | %99 |
154 | 9a | š | %9a |
155 | 9b | › | %9b |
156 | 9c | œ | %9c |
157 | 9d | | %9d |
158 | 9e | ž | %9e |
159 | 9f | Ÿ | %9f |
160 | a0 | %a0 | |
161 | a1 | ¡ | %a1 |
162 | a2 | ¢ | %a2 |
163 | a3 | £ | %a3 |
164 | a4 | ¤ | %a4 |
165 | a5 | ¥ | %a5 |
166 | a6 | ¦ | %a6 |
167 | a7 | § | %a7 |
168 | a8 | ¨ | %a8 |
169 | a9 | © | %a9 |
170 | aa | ª | %aa |
171 | ab | « | %ab |
172 | ac | ¬ | %ac |
173 | ad | | %ad |
174 | ae | ® | %ae |
175 | af | ¯ | %af |
176 | b0 | ° | %b0 |
177 | b1 | ± | %b1 |
178 | b2 | ² | %b2 |
179 | b3 | ³ | %b3 |
180 | b4 | ´ | %b4 |
181 | b5 | µ | %b5 |
182 | b6 | ¶ | %b6 |
183 | b7 | · | %b7 |
184 | b8 | ¸ | %b8 |
185 | b9 | ¹ | %b9 |
186 | ba | º | %ba |
187 | bb | » | %bb |
188 | bc | ¼ | %bc |
189 | bd | ½ | %bd |
190 | be | ¾ | %be |
191 | bf | ¿ | %bf |
192 | c0 | À | %c0 |
193 | c1 | Á | %c1 |
194 | c2 | Â | %c2 |
195 | c3 | Ã | %c3 |
196 | c4 | Ä | %c4 |
197 | c5 | Å | %c5 |
198 | c6 | Æ | %v6 |
199 | c7 | Ç | %c7 |
200 | c8 | È | %c8 |
201 | c9 | É | %c9 |
202 | ca | Ê | %ca |
203 | cb | Ë | %cb |
204 | cc | Ì | %cc |
205 | cd | Í | %cd |
206 | ce | Î | %ce |
207 | cf | Ï | %cf |
208 | d0 | Ð | %d0 |
209 | d1 | Ñ | %d1 |
210 | d2 | Ò | %d2 |
211 | d3 | Ó | %d3 |
212 | d4 | Ô | %d4 |
213 | d5 | Õ | %d5 |
214 | d6 | Ö | %d6 |
215 | d7 | × | %d7 |
216 | d8 | Ø | %d8 |
217 | d9 | Ù | %d9 |
218 | da | Ú | %da |
219 | db | Û | %db |
220 | dc | Ü | %dc |
221 | dd | Ý | %dd |
222 | de | Þ | %de |
223 | df | ß | %df |
224 | e0 | à | %e0 |
225 | e1 | á | %e1 |
226 | e2 | â | %e2 |
227 | e3 | ã | %e3 |
228 | e4 | ä | %e4 |
229 | e5 | å | %e5 |
230 | e6 | æ | %e6 |
231 | e7 | ç | %e7 |
232 | e8 | è | %e8 |
233 | e9 | é | %e9 |
234 | ea | ê | %ea |
235 | eb | ë | %eb |
236 | ec | ì | %ec |
237 | ed | í | %ed |
238 | ee | î | %ee |
239 | ef | ï | %ef |
240 | f0 | ð | %f0 |
241 | f1 | ñ | %f1 |
242 | f2 | ò | %f2 |
243 | f3 | ó | %f3 |
244 | f4 | ô | %f4 |
245 | f5 | õ | %f5 |
246 | f6 | ö | %f6 |
247 | f7 | ÷ | %f7 |
248 | f8 | ø | %f8 |
249 | f9 | ù | %f9 |
250 | fa | ú | %fa |
251 | fb | û | %fb |
252 | fc | ü | %fc |
253 | fd | ý | %fd |
254 | fe | þ | %fe |
255 | ff | ÿ | %ff |
5. Mã hóa các ký tự đặc biệt
Hệ thập phân | Giá trị thập lục phân | Ký tự | Mã URL |
36 | 24 | $ | %24 |
38 | 26 | & | %26 |
43 | 2b | + | %2b |
44 | 2c | , | %2c |
47 | 2f | / | %2f |
58 | 3a | : | %3a |
59 | 3b | ; | %3b |
61 | 3d | = | %3d |
63 | 3f | ? | %3f |
64 | 40 | @ | %40
|
6. Mã hóa các ký tự không an toàn
Hệ thập phân | Giá trị thập lục phân | Ký tự | Mã URL |
32 | 20 | space | %20 |
34 | 22 | " | %22 |
60 | 3c | < | %3c |
62 | 3e | > | %3e |
35 | 23 | # | %23 |
37 | 25 | % | %25 |
123 | 7b | { | %7b |
125 | 7d | } | %7d |
124 | 7c | | | %7c |
92 | 5c | \ | %5c |
94 | 5e | ^ | %5e |
126 | 7e | ~ | %7e |
91 | 5b | [ | %5b |
93 | 5d | ] | %5d |
96 | 60 | ` | %60 |
Kết
Trên đây là những chỉa sẻ của Stringee về các thông tin mã hóa URL mà các bạn cần lưu ý khi thực hiện triển khai các website của mình. Mong rằng thông tin này sẽ hữu ích với các bạn đọc.
Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.
Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy, Adavigo, bTaskee…
Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: