Percent Encoding
Percent-encoding adalah mekanisme penulisan beberapa karakter sehingga tidak merusak konteks URL. Karena ada beberapa karakter yang apabila ditulis secara eksplisit maka akan membuat ambigu struktur URLnya. Percent-encoding ditandai dengan penulisan yang diawali dengan karakter %
kemudian dilanjutkan dengan bilangan heksadesimal dari nilai ASCII karakter tsb.
Beberapa karakter yang dimaksud adalah :
, /
, ?
, #
, [
, ]
, @
, !
, $
, &
, '
, (
, )
, *
, +
, ,
, ;
, =
, dan karakter %
itu sendiri.
Character | Encoding |
---|---|
':' |
%3A |
'/' |
%2F |
'?' |
%3F |
'#' |
%23 |
'[' |
%5B |
']' |
%5D |
'@' |
%40 |
'!' |
%21 |
'$' |
%24 |
'&' |
%26 |
"'" |
%27 |
'(' |
%28 |
')' |
%29 |
'*' |
%2A |
'+' |
%2B |
',' |
%2C |
';' |
%3B |
'=' |
%3D |
'%' |
%25 |
' ' |
%20 atau + |
Mengapa harus dilakukan encoding seperti ini? Paling mencolok adalah karakter /
yang mana berarti sub direktori dari suatu URL, apabila suatu path berisi karakter tersebut maka parsing URL mengira pathnya sudah berpindah. Misalnya, kita perlu menulis suatu data url seperti merah/hijau
dan dikirim ke path root /
dari host. Bila ditulis ke URL http://example.com/merah/hijau
maka path routingnya berbeda.
Percent Encoding
Cobain percent-encoding
dah pake ini.
Daftar Pustaka
“Percent Encoding” by Developer Mozilla https://developer.mozilla.org/en-US/docs/Glossary/Percent-encoding
“URL Encoding” by Wikipedia https://en.wikipedia.org/wiki/URL_encoding