HTML5 - kodowanie adresów URL
Kodowanie adresów URL to praktyka polegająca na tłumaczeniu niedrukowalnych znaków lub znaków o specjalnym znaczeniu w adresach URL na reprezentację, która jest jednoznaczna i powszechnie akceptowana przez przeglądarki internetowe i serwery. Te postacie obejmują -
ASCII control characters- Znaki niedrukowalne zwykle używane do sterowania wyjściem. Zakres znaków 00-1F szesnastkowo (0-31 dziesiętnie) i 7F (127 dziesiętnie). Pełna tabela kodowania jest podana poniżej.
Non-ASCII control characters- Są to znaki spoza zestawu 128 znaków ASCII. Ten zakres jest częścią zestawu znaków ISO-Latin i obejmuje całą „górną połowę” zestawu ISO-Latin 80-FF szesnastkowo (128-255 dziesiętnie). Pełna tabela kodowania jest podana poniżej.
Reserved characters- Są to znaki specjalne, takie jak znak dolara, ampersand, plus, wspólny, ukośnik, dwukropek, średnik, znak równości, znak zapytania i symbol „at”. Wszystkie te elementy mogą mieć różne znaczenie w adresie URL, dlatego muszą zostać zakodowane. Pełna tabela kodowania jest podana poniżej.
Unsafe characters- Są to spacja, cudzysłowy, znak mniejszy niż symbol, znak większy niż symbol, znak funta, znak procentu, lewy nawias klamrowy, prawy nawias klamrowy, kreska pionowa, ukośnik odwrotny, daszek, tylda, lewy nawias kwadratowy, prawy nawias kwadratowy, głęboki akcent. Te znaki mogą z różnych powodów zostać źle zrozumiane w ramach adresów URL. Te znaki również powinny być zawsze zakodowane. Pełna tabela kodowania jest podana poniżej.
Zapis kodowania zastępuje żądany znak trzema znakami: znakiem procentu i dwiema cyframi szesnastkowymi, które odpowiadają pozycji znaku w zestawie znaków ASCII.
Przykład
Jednym z najpowszechniejszych znaków specjalnych jest spacja. Nie możesz bezpośrednio wpisać spacji w adresie URL. Pozycja spacji w zestawie znaków to 20 szesnastkowych. Możesz więc użyć% 20 w miejscu spacji podczas przekazywania żądania do serwera.
http://www.example.com/new%20pricing.html
Ten adres URL faktycznie pobiera dokument o nazwie new pricing.html z www.example.com
Kodowanie znaków sterujących ASCII
Obejmuje to kodowanie zakresów znaków 00-1F szesnastkowo (0-31 dziesiętnie) i 7F (127 dziesiętnie)
Dziesiętny | Wartość szesnastkowa | Postać | Kodowanie adresu 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 | patka | % 09 |
10 | 0a | linefeed | % 0a |
11 | 0b | % 0b | |
12 | 0c | % 0c | |
13 | 0d | powrót karetki | % 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 |
Kodowanie znaków sterujących innych niż ASCII
Obejmuje to kodowanie całej „górnej połowy” zestawu ISO-Latin 80-FF szesnastkowo (128-255 dziesiętnie).
Dziesiętny | Wartość szesnastkowa | Postać | Kodowanie adresu 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 | ogłoszenie | | %ogłoszenie |
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 | nocleg ze śniadaniem | » | %nocleg ze śniadaniem |
188 | pne | ¼ | %pne |
189 | bd | ½ | % bd |
190 | być | ¾ | %być |
191 | bf | ¿ | % bf |
192 | c0 | ZA | % c0 |
193 | c1 | ZA | % c1 |
194 | c2 | ZA | % c2 |
195 | c3 | ZA | % c3 |
196 | c4 | ZA | % c4 |
197 | c5 | ZA | % c5 |
198 | c6 | Æ | % v6 |
199 | c7 | DO | % c7 |
200 | c8 | MI | % c8 |
201 | c9 | MI | % c9 |
202 | ok | MI | % ca |
203 | cb | MI | % cb |
204 | cc | JA | % cc |
205 | Płyta CD | JA | %Płyta CD |
206 | ce | JA | % ce |
207 | por | JA | % cf |
208 | d0 | RE | % 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 | za | % e0 |
225 | e1 | za | % e1 |
226 | e2 | za | % e2 |
227 | e3 | za | % e3 |
228 | e 4 | za | %e 4 |
229 | e5 | za | % e5 |
230 | e6 | æ | % e6 |
231 | e7 | do | % e7 |
232 | e8 | mi | % e8 |
233 | e9 | mi | % e9 |
234 | ea | mi | % ea |
235 | eb | mi | % eb |
236 | ec | ja | % ec |
237 | wyd | ja | % ed |
238 | ee | ja | % ee |
239 | ef | ja | % ef |
240 | f0 | re | % 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 | pełne wyżywienie | û | %pełne wyżywienie |
252 | fc | ü | % fc |
253 | fd | ý | % fd |
254 | fe | þ | % fe |
255 | ff | ÿ | % ff |
Kodowanie znaków zastrzeżonych
Poniżej znajduje się tabela, która ma być używana do kodowania znaków zastrzeżonych.
Dziesiętny | Wartość szesnastkowa | Zwęglać | Kodowanie adresu 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 |
Niebezpieczne kodowanie znaków
Poniżej znajduje się tabela, która ma być używana do kodowania niebezpiecznych znaków.
Dziesiętny | Wartość szesnastkowa | Zwęglać | Kodowanie adresu URL |
---|---|---|---|
32 | 20 | przestrzeń | % 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% |