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%