URIS DOCS
COMPONENTS
Name
Description
Example
Output
URLDescription: Uniform Resource Locator, subset URI yang mengidentifikasi lokasi resource dan cara mengambilnya.
Example:
https://user:pass@example.com:443/path?query=1#fragment
Output: URL lengkap
URLUniform Resource Locator, subset URI yang mengidentifikasi lokasi resource dan cara mengambilnya.
https://user:pass@example.com:443/path?query=1#fragment
URL lengkap
SchemeDescription: Protokol yang digunakan (https, http, ftp, mailto, file, dll). Diikuti oleh :// atau :.
Example:
https://
Output: https
SchemeProtokol yang digunakan (https, http, ftp, mailto, file, dll). Diikuti oleh :// atau :.
https://
https
AuthorityDescription: Bagian setelah scheme, terdiri dari userinfo@, host, dan port (opsional). Dipisahkan dari path dengan /.
Example:
user:pass@example.com:443
Output: user:pass@example.com:443
AuthorityBagian setelah scheme, terdiri dari userinfo@, host, dan port (opsional). Dipisahkan dari path dengan /.
user:pass@example.com:443
user:pass@example.com:443
HostDescription: Nama domain atau alamat IP server.
Example:
example.com
Output: example.com
HostNama domain atau alamat IP server.
example.com
example.com
PortDescription: Port jaringan, opsional (default 80 untuk HTTP, 443 untuk HTTPS).
Example:
:8080
Output: 8080
PortPort jaringan, opsional (default 80 untuk HTTP, 443 untuk HTTPS).
:8080
8080
PathDescription: Lokasi resource di server, dipisahkan oleh /. Dapat merefleksikan struktur file atau route.
Example:
/blog/2024/my-post
Output: /blog/2024/my-post
PathLokasi resource di server, dipisahkan oleh /. Dapat merefleksikan struktur file atau route.
/blog/2024/my-post
/blog/2024/my-post
Query StringDescription: Parameter key=value dipisahkan &, dimulai setelah tanda tanya ?.
Example:
?q=search&lang=id&page=2
Output: q=search, lang=id, page=2
Query StringParameter key=value dipisahkan &, dimulai setelah tanda tanya ?.
?q=search&lang=id&page=2
q=search, lang=id, page=2
FragmentDescription: Referensi ke sub-bagian resource, dimulai setelah tanda pagar #. Tidak dikirim ke server.
Example:
#section-2
Output: Lompat ke elemen id='section-2'
FragmentReferensi ke sub-bagian resource, dimulai setelah tanda pagar #. Tidak dikirim ke server.
#section-2
Lompat ke elemen id='section-2'
ENCODING
Name
Description
Example
Output
Percent-encodingDescription: Mengganti karakter khusus dengan % diikuti dua digit heksadesimal UTF-8.
Example:
Spasi → %20, # → %23, / → %2F
Output: URI yang valid
Percent-encodingMengganti karakter khusus dengan % diikuti dua digit heksadesimal UTF-8.
Spasi → %20, # → %23, / → %2F
URI yang valid
encodeURI()Description: Mengenkode URI lengkap, tidak mengubah karakter yang memiliki makna khusus (:/?#[]@!$&'()*+,;=).
Example:
encodeURI('https://example.com/path with spaces')Output: https://example.com/path%20with%20spaces
encodeURI()Mengenkode URI lengkap, tidak mengubah karakter yang memiliki makna khusus (:/?#[]@!$&'()*+,;=).
encodeURI('https://example.com/path with spaces')https://example.com/path%20with%20spaces
encodeURIComponent()Description: Mengenkode komponen URI (nilai query), mengkodekan lebih banyak karakter termasuk ?&=/.
Example:
encodeURIComponent('key=value&other=another')Output: key%3Dvalue%26other%3Danother
encodeURIComponent()Mengenkode komponen URI (nilai query), mengkodekan lebih banyak karakter termasuk ?&=/.
encodeURIComponent('key=value&other=another')key%3Dvalue%26other%3Danother
decodeURI()Description: Mendekode URI yang telah di-encodeURI().
Example:
decodeURI('https://example.com/path%20with%20spaces')Output: https://example.com/path with spaces
decodeURI()Mendekode URI yang telah di-encodeURI().
decodeURI('https://example.com/path%20with%20spaces')https://example.com/path with spaces
decodeURIComponent()Description: Mendekode komponen URI yang telah di-encodeURIComponent().
Example:
decodeURIComponent('key%3Dvalue')Output: key=value
decodeURIComponent()Mendekode komponen URI yang telah di-encodeURIComponent().
decodeURIComponent('key%3Dvalue')key=value
reserved charactersDescription: Karakter yang memiliki arti khusus dalam URI dan tidak boleh digunakan tanpa encoding: : / ? # [ ] @ ! $ & ' ( ) * + , ; =
Example:
Digunakan untuk struktur URI, harus di-encode jika bagian dari data.
Output: Set karakter khusus
reserved charactersKarakter yang memiliki arti khusus dalam URI dan tidak boleh digunakan tanpa encoding: : / ? # [ ] @ ! $ & ' ( ) * + , ; =
Digunakan untuk struktur URI, harus di-encode jika bagian dari data.
Set karakter khusus
unreserved charactersDescription: Karakter yang aman tanpa encoding: A-Z a-z 0-9 - _ . ~
Example:
Dapat langsung digunakan dalam URI.
Output: Alfanumerik dan - _ . ~
unreserved charactersKarakter yang aman tanpa encoding: A-Z a-z 0-9 - _ . ~
Dapat langsung digunakan dalam URI.
Alfanumerik dan - _ . ~
URL-API
Name
Description
Example
Output
new URL()Description: Constructor untuk membuat dan memanipulasi URL. Dapat melempar TypeError jika URL tidak valid.
Example:
const url = new URL('https://example.com:8080/path?q=test#hash')Output: URL object
new URL()Constructor untuk membuat dan memanipulasi URL. Dapat melempar TypeError jika URL tidak valid.
const url = new URL('https://example.com:8080/path?q=test#hash')URL object
url.hrefDescription: URL lengkap sebagai string.
Example:
url.href
Output: https://example.com:8080/path?q=test#hash
url.hrefURL lengkap sebagai string.
url.href
https://example.com:8080/path?q=test#hash
url.originDescription: Origin URL (scheme + host + port).
Example:
url.origin
Output: https://example.com:8080
url.originOrigin URL (scheme + host + port).
url.origin
https://example.com:8080
url.protocolDescription: Scheme / protokol termasuk titik dua.
Example:
url.protocol
Output: https:
url.protocolScheme / protokol termasuk titik dua.
url.protocol
https:
url.hostnameDescription: Nama host tanpa port.
Example:
url.hostname
Output: example.com
url.hostnameNama host tanpa port.
url.hostname
example.com
url.portDescription: Port sebagai string.
Example:
url.port
Output: 8080
url.portPort sebagai string.
url.port
8080
url.pathnameDescription: Path termasuk awalan /.
Example:
url.pathname
Output: /path
url.pathnamePath termasuk awalan /.
url.pathname
/path
url.searchDescription: Query string termasuk tanda tanya ?. Dapat di-set untuk memperbarui query.
Example:
url.search
Output: ?q=test
url.searchQuery string termasuk tanda tanya ?. Dapat di-set untuk memperbarui query.
url.search
?q=test
url.hashDescription: Fragment termasuk tanda pagar #.
Example:
url.hash
Output: #hash
url.hashFragment termasuk tanda pagar #.
url.hash
#hash
url.searchParamsDescription: Objek URLSearchParams untuk manipulasi parameter query.
Example:
url.searchParams.get('q')Output: test
url.searchParamsObjek URLSearchParams untuk manipulasi parameter query.
url.searchParams.get('q')test
URLSearchParamsDescription: Interface untuk bekerja dengan query string secara langsung.
Example:
const params = new URLSearchParams('q=hello&page=1')Output: params.get('page') = '1'
URLSearchParamsInterface untuk bekerja dengan query string secara langsung.
const params = new URLSearchParams('q=hello&page=1')params.get('page') = '1'
params.get(key)Description: Mendapatkan nilai parameter pertama.
Example:
params.get('q')Output: 'hello'
params.get(key)Mendapatkan nilai parameter pertama.
params.get('q')'hello'
params.getAll(key)Description: Mendapatkan semua nilai untuk parameter yang sama.
Example:
params.getAll('tag')Output: ['js', 'css']
params.getAll(key)Mendapatkan semua nilai untuk parameter yang sama.
params.getAll('tag')['js', 'css']
params.set(key, value)Description: Mengatur nilai parameter (menimpa yang sudah ada).
Example:
params.set('q', 'new')Output: q=new
params.set(key, value)Mengatur nilai parameter (menimpa yang sudah ada).
params.set('q', 'new')q=new
params.append(key, value)Description: Menambahkan parameter (bisa ganda).
Example:
params.append('tag', 'html')Output: tag=js&tag=css&tag=html
params.append(key, value)Menambahkan parameter (bisa ganda).
params.append('tag', 'html')tag=js&tag=css&tag=html
params.delete(key)Description: Menghapus parameter.
Example:
params.delete('page')Output: page dihapus
params.delete(key)Menghapus parameter.
params.delete('page')page dihapus
params.toString()Description: Mengembalikan query string tanpa ?.
Example:
params.toString()
Output: q=test&page=1
params.toString()Mengembalikan query string tanpa ?.
params.toString()
q=test&page=1
DATA-URLS
Name
Description
Example
Output
Data URL formatDescription: Menyematkan data kecil langsung di URI, tidak perlu HTTP request.
Example:
data:[mediatype][;base64],data
Output: URI mandiri
Data URL formatMenyematkan data kecil langsung di URI, tidak perlu HTTP request.
data:[mediatype][;base64],data
URI mandiri
Plain text data URLDescription: Data teks tanpa encoding base64.
Example:
data:text/plain,Hello%20World!
Output: Teks 'Hello World!'
Plain text data URLData teks tanpa encoding base64.
data:text/plain,Hello%20World!
Teks 'Hello World!'
Base64 data URLDescription: Data binary dienkode base64.
Example:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...
Output: Gambar inline
Base64 data URLData binary dienkode base64.
data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...
Gambar inline
Data URL in CSSDescription: Gunakan sebagai nilai url() untuk background atau border-image.
Example:
background-image: url('data:image/svg+xml,...');Output: Gambar latar inline
Data URL in CSSGunakan sebagai nilai url() untuk background atau border-image.
background-image: url('data:image/svg+xml,...');Gambar latar inline
RELATIVE-ABSOLUTE
Name
Description
Example
Output
Absolute URIDescription: Mengandung scheme dan authority, dapat diakses secara mandiri.
Example:
https://example.com/about
Output: URL lengkap
Absolute URIMengandung scheme dan authority, dapat diakses secara mandiri.
https://example.com/about
URL lengkap
Relative URIDescription: Bergantung pada base URI. Tanpa scheme atau authority.
Example:
../images/photo.jpg
Output: Diresolve terhadap base
Relative URIBergantung pada base URI. Tanpa scheme atau authority.
../images/photo.jpg
Diresolve terhadap base
Root-relative URIDescription: Dimulai dengan /, merujuk ke root dari origin yang sama.
Example:
/css/style.css
Output: Relative terhadap root domain saat ini
Root-relative URIDimulai dengan /, merujuk ke root dari origin yang sama.
/css/style.css
Relative terhadap root domain saat ini
<base> elementDescription: Mendefinisikan base URI untuk semua relative URI dalam dokumen.
Example:
<base href="https://example.com/app/">
Output: Semua link relatif dari /app/
<base> elementMendefinisikan base URI untuk semua relative URI dalam dokumen.
<base href="https://example.com/app/">
Semua link relatif dari /app/
BEST-PRACTICES
Name
Description
Example
Output
Gunakan HTTPSDescription: Selalu gunakan skema https untuk keamanan dan privasi.
Example:
https://example.com
Output: Koneksi terenkripsi
Gunakan HTTPSSelalu gunakan skema https untuk keamanan dan privasi.
https://example.com
Koneksi terenkripsi
URL pendek dan deskriptifDescription: Gunakan path yang mudah dibaca manusia dan hindari parameter tidak perlu.
Example:
/blog/belajar-javascript
Output: User-friendly URL
URL pendek dan deskriptifGunakan path yang mudah dibaca manusia dan hindari parameter tidak perlu.
/blog/belajar-javascript
User-friendly URL
Validasi dan sanitasi input URLDescription: Hindari SSRF dan open redirect dengan memvalidasi URL dari pengguna.
Example:
Gunakan new URL() dengan try/catch, atau perpustakaan validasi.
Output: URL aman
Validasi dan sanitasi input URLHindari SSRF dan open redirect dengan memvalidasi URL dari pengguna.
Gunakan new URL() dengan try/catch, atau perpustakaan validasi.
URL aman
Encode komponen query dengan benarDescription: Gunakan encodeURIComponent() untuk nilai parameter.
Example:
const query = '?name=' + encodeURIComponent('Ridho Akbar')Output: ?name=Ridho%20Akbar
Encode komponen query dengan benarGunakan encodeURIComponent() untuk nilai parameter.
const query = '?name=' + encodeURIComponent('Ridho Akbar')?name=Ridho%20Akbar
Hindari menyertakan rahasia di URLDescription: Token atau password di URL bisa terekspos di log server, history browser, dan referrer header.
Example:
Gunakan POST body atau header Authorization.
Output: Rahasia tidak bocor
Hindari menyertakan rahasia di URLToken atau password di URL bisa terekspos di log server, history browser, dan referrer header.
Gunakan POST body atau header Authorization.
Rahasia tidak bocor