Selalu Aman
Ini aman (dalam teori / spec), pada dasarnya di mana saja kecuali nama domain.
Persen-enkode apa pun yang tidak terdaftar, dan Anda siap melakukannya.
A-Z a-z 0-9 - . _ ~ ( ) ' ! * : @ , ;
Terkadang Aman
Hanya aman bila digunakan dalam komponen URL tertentu; gunakan dengan hati-hati.
Paths: + & =
Queries: ? /
Fragments: ? / # + & =
Tidak pernah aman
Menurut spesifikasi URI (RFC 3986), semua karakter lain harus dikodekan persen. Ini termasuk:
<space> <control-characters> <extended-ascii> <unicode>
% < > [ ] { } | \ ^
Jika kompatibilitas maksimum menjadi perhatian, batasi rangkaian karakter ke AZ az 0-9 - _.
(dengan periode hanya untuk ekstensi nama file).
Simpan Konteks dalam Pikiran
Meskipun valid per spec, URL masih bisa "tidak aman", tergantung pada konteksnya. Seperti file: /// URL yang berisi karakter nama file tidak valid, atau komponen permintaan yang mengandung "?", "=", Dan "&" saat tidak digunakan sebagai pembatas. Penanganan yang benar untuk kasus-kasus ini umumnya tergantung pada skrip Anda dan dapat diselesaikan, tetapi ini sesuatu yang perlu diingat.