Skip to content

URL Encoder & Decoder dengan URL Parser Bawaan

Decode atau encode URL online gratis secara real-time. Dual mode: encodeURI & encodeURIComponent, URL parser bawaan. Tanpa pendaftaran, 100% privat di browser.

Tanpa Pelacakan Berjalan di Browser Gratis
Decoded
Encoded
Ditinjau untuk kepatuhan RFC 3986, kebenaran encodeURI/encodeURIComponent, dan akurasi encoding UTF-8 — Go Tools Engineering Team · Apr 7, 2026

Apa Itu URL Encoding (Percent Encoding)?

URL encoding, yang secara formal dikenal sebagai percent encoding, adalah mekanisme yang didefinisikan dalam RFC 3986 untuk merepresentasikan karakter dalam Uniform Resource Identifier (URI) yang tidak diperbolehkan atau memiliki makna khusus. Ia mengonversi setiap byte yang tidak aman menjadi tanda persen (%) diikuti dua digit heksadesimal — misalnya, spasi menjadi %20, ampersand menjadi %26, dan karakter Cina 中 menjadi %E4%B8%AD (tiga byte UTF-8-nya, masing-masing di-encode dengan persen).

URL hanya dapat mengandung rangkaian karakter terbatas dari set karakter ASCII. Huruf, digit, dan beberapa simbol (- _ . ~) dianggap 'unreserved' dan dapat muncul apa adanya. Semua karakter lain — termasuk spasi, tanda baca, dan seluruh rentang Unicode — harus di-encode dengan persen untuk dapat ditransmisikan dengan aman dalam URL. Karakter reserved seperti ?, &, =, dan # berfungsi sebagai pembatas struktural dalam sintaks URL, sehingga mereka juga harus di-encode ketika digunakan sebagai data literal bukan sebagai pembatas.

Percent encoding sangat penting di seluruh web: browser meng-encode pengiriman form, API memerlukan parameter query yang di-encode, alur OAuth bergantung pada URI redirect yang di-encode dengan benar, dan nama domain internasional bergantung pada encoding untuk karakter non-ASCII. Encoding yang salah menghasilkan tautan rusak, kerentanan keamanan (seperti serangan open redirect), dan kerusakan data.

Alat ini menyediakan mode encodeURI dan encodeURIComponent, URL structure parser bawaan, konversi real-time, dan deteksi double encoding — semuanya berjalan secara privat di browser Anda.

URL encoding sering digunakan bersama alat pengembangan web lainnya. Anda mungkin perlu melakukan encoding Base64 pada URL untuk disematkan dalam token JWT atau payload API, atau memformat data JSON yang mengandung string URL untuk memeriksa strukturnya.

// Encode a query parameter value
const param = encodeURIComponent('hello world & goodbye');
console.log(param); // → 'hello%20world%20%26%20goodbye'

// Encode a full URL (preserves structure)
const url = encodeURI('https://example.com/path name?q=hello world');
console.log(url); // → 'https://example.com/path%20name?q=hello%20world'

// Decode a percent-encoded string
const decoded = decodeURIComponent('hello%20world%20%26%20goodbye');
console.log(decoded); // → 'hello world & goodbye'

// Build a URL with encoded parameters
const base = 'https://api.example.com/search';
const query = `?q=${encodeURIComponent('你好')}&lang=zh`;
console.log(base + query); // → 'https://api.example.com/search?q=%E4%BD%A0%E5%A5%BD&lang=zh'

Fitur Utama

Dual Mode Encoding

Beralih antara encodeURI (mempertahankan struktur URL) dan encodeURIComponent (meng-encode semuanya untuk nilai parameter) untuk mencocokkan kasus penggunaan Anda.

URL Parser Bawaan

Secara otomatis memecah URL apa pun menjadi protokol, host, port, path, parameter query, dan fragment — setiap field dapat diedit dan dibangun ulang menjadi URL baru.

Konversi Real-Time

Encode dan decode secara instan saat Anda mengetik — tanpa tombol yang perlu diklik, hasil muncul segera di area lainnya dengan setiap penekanan tombol.

100% Berbasis Browser

Semua pemrosesan dilakukan secara lokal di browser menggunakan API JavaScript native. Data Anda tidak pernah meninggalkan perangkat — tanpa upload server, tanpa pelacakan.

Dukungan UTF-8 Penuh

Menangani karakter Cina, Jepang, Korea, Arab, emoji, dan teks Unicode apa pun dengan benar melalui encoding dan decoding byte UTF-8 yang tepat.

Deteksi Double Encoding

Secara otomatis mendeteksi dan memperingatkan masalah double encoding seperti %2520 (%20 yang di-encode dengan persen), membantu Anda menghindari salah satu kesalahan URL encoding yang paling umum.

Contoh

Decode URL yang Rusak

https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dhello%20world%26lang%3Den
https://example.com/search?q=hello world&lang=en

URL yang sepenuhnya di-encode dengan persen didecode kembali ke bentuk yang dapat dibaca manusia, mengungkapkan parameter query dan struktur asli

Karakter Cina

https://example.com/search?q=你好世界
https://example.com/search?q=%E4%BD%A0%E5%A5%BD%E4%B8%96%E7%95%8C

Karakter Cina dikonversi ke urutan byte UTF-8 mereka dan di-encode dengan persen

Parameter Query

https://example.com/api?name=John Doe&role=admin&lang=en&sort=date desc
https://example.com/api?name=John%20Doe&role=admin&lang=en&sort=date%20desc

Spasi dan karakter khusus dalam nilai parameter query di-encode dengan persen sambil mempertahankan struktur URL

URL Lengkap

https://user:pass@example.com:8080/path/to/page?key=value&arr[]=1#section-2
https://user:pass@example.com:8080/path/to/page?key=value&arr%5B%5D=1#section-2

URL lengkap dengan kredensial, port, path, parameter query dengan kurung siku, dan fragment identifier

URI Redirect OAuth

https://auth.example.com/authorize?redirect_uri=https://myapp.com/callback?code=abc&state=xyz
https://auth.example.com/authorize?redirect_uri=https%3A%2F%2Fmyapp.com%2Fcallback%3Fcode%3Dabc%26state%3Dxyz

Nilai redirect_uri itu sendiri berisi URL lengkap yang harus di-encode agar karakter khususnya tidak diinterpretasikan sebagai bagian dari URL luar

Cara Menggunakan

  1. 1

    Masukkan URL atau String yang Di-encode

    Tempel URL di area decoded untuk meng-encode-nya, atau tempel string yang di-encode dengan persen di area encoded untuk mendecode-nya. Pilih mode encodeURI atau encodeURIComponent tergantung pada kasus penggunaan Anda.

  2. 2

    Lihat Hasil dan Struktur yang Diparse

    Area lainnya diperbarui secara instan saat Anda mengetik. URL parser memecah URL menjadi protokol, host, port, path, parameter query, dan fragment — semuanya dapat diedit.

  3. 3

    Salin atau Bangun Ulang

    Klik Salin untuk menyalin hasil encoded atau decoded. Edit komponen URL individual dan klik Bangun Ulang untuk membangun URL baru dari bagian yang dimodifikasi.

Kesalahan Umum

Double Encoding (%2520 alih-alih %20)

Double encoding terjadi ketika URL yang sudah di-encode di-encode lagi. % di %20 di-encode menjadi %25, mengubah %20 menjadi %2520. Ini merusak URL karena server melihat string literal %20 alih-alih spasi.

✗ Salah
https://example.com/path%2520with%2520spaces
✓ Benar
https://example.com/path%20with%20spaces

Spasi Di-encode sebagai + di Segmen Path

Karakter + mewakili spasi hanya dalam format application/x-www-form-urlencoded (query string dari form HTML). Di segmen path URL, + diinterpretasikan sebagai tanda plus literal, bukan spasi. Selalu gunakan %20 untuk spasi di segmen path.

✗ Salah
https://example.com/my+file+name.pdf
✓ Benar
https://example.com/my%20file%20name.pdf

Menggunakan encodeURI pada Nilai Parameter Query

encodeURI() tidak meng-encode &, =, atau karakter reserved lainnya, sehingga menggunakannya pada nilai parameter yang mengandung karakter-karakter ini merusak struktur query string.

✗ Salah
encodeURI('key=value&more')  → 'key=value&more' (& not encoded!)
✓ Benar
encodeURIComponent('key=value&more')  → 'key%3Dvalue%26more'

Mengasumsikan Encoding Non-UTF-8

Beberapa sistem legacy menggunakan encoding seperti Latin-1 atau Shift-JIS untuk parameter URL. Standar modern mengharuskan UTF-8. Mendecode parameter yang di-encode Shift-JIS dengan decoder UTF-8 menghasilkan teks yang rusak.

✗ Salah
Decoding %82%B1%82%F1 as UTF-8 (this is Shift-JIS for こん)
✓ Benar
Using UTF-8: %E3%81%93%E3%82%93 correctly decodes to こん

Meng-encode Path Relatif Tanpa Konteks

Meng-encode path relatif seperti ../images/photo.jpg dengan encodeURIComponent mengubah garis miring dan titik menjadi urutan yang di-encode dengan persen, merusak struktur path. Gunakan encodeURI() atau encode hanya segmen path individual.

✗ Salah
encodeURIComponent('../images/photo.jpg')  → '..%2Fimages%2Fphoto.jpg'
✓ Benar
Encode each segment: '../images/' + encodeURIComponent('my photo.jpg')

Kasus Penggunaan Umum

Men-debug URL yang Rusak
Decode URL yang di-encode dengan persen dari log server, pesan error, atau dev tools browser untuk membaca teks asli yang dapat dibaca manusia.
Pengembangan API
Encode nilai parameter query untuk panggilan REST API, memastikan karakter khusus seperti &, =, dan spasi tidak merusak URL permintaan.
Setup Alur OAuth
Encode redirect_uri dan parameter URL lainnya dengan benar di URL otorisasi OAuth untuk mencegah kegagalan autentikasi.
URL Internasional
Encode dan decode URL yang mengandung karakter Cina, Jepang, Korea, Arab, atau non-ASCII lainnya untuk aplikasi web internasional.
Analisis Tautan Marketing
Decode URL pelacakan dari kampanye email dan platform iklan untuk memahami parameter UTM dan rantai redirect yang disematkan.
Inspeksi Struktur URL
Parse URL kompleks menjadi bagian komponennya — protokol, host, port, path, parameter query, dan fragment — untuk analisis dan modifikasi.

Detail Teknis

Karakter Reserved & Unreserved RFC 3986
RFC 3986 mendefinisikan karakter unreserved (A-Z, a-z, 0-9, -, ., _, ~) yang tidak pernah perlu di-encode, dan karakter reserved (:, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, =) yang berfungsi sebagai pembatas URI dan harus di-encode dengan persen ketika digunakan sebagai data.
Alur Encoding Byte UTF-8
Karakter non-ASCII pertama dikonversi ke code point Unicode mereka, kemudian di-encode sebagai byte UTF-8 (1-4 byte tergantung pada rentang code point), dan akhirnya setiap byte di-encode dengan persen sebagai %XX. Misalnya: é (U+00E9) → byte UTF-8 C3 A9 → %C3%A9. Emoji 🎉 (U+1F389) → byte UTF-8 F0 9F 8E 89 → %F0%9F%8E%89.
Terminologi URL vs URI
URI (Uniform Resource Identifier) adalah istilah umum untuk string pengenal apa pun. URL (Uniform Resource Locator) adalah URI yang juga menentukan mekanisme akses (seperti https://). Aturan encoding di RFC 3986 berlaku untuk semua URI. API JavaScript menggunakan terminologi URI (encodeURI, decodeURI), sementara penggunaan sehari-hari lebih menyukai URL.

Praktik Terbaik

Gunakan Mode yang Tepat untuk Pekerjaan
Gunakan encodeURIComponent() untuk kunci dan nilai parameter query individual. Gunakan encodeURI() hanya ketika Anda memiliki URL lengkap dan ingin meng-encode karakter yang tidak aman tanpa merusak strukturnya. Jangan pernah gunakan encodeURI() pada nilai parameter yang mungkin mengandung &, =, atau karakter reserved lainnya.
Hindari Double Encoding
Sebelum meng-encode string, periksa apakah sudah di-encode. Cari urutan % yang ada. Meng-encode string yang sudah di-encode mengubah %20 menjadi %2520, %3D menjadi %253D, dan seterusnya. Jika tidak yakin, decode dulu, lalu encode sekali.
Decode di Sisi Server
Sebagian besar framework web secara otomatis mendecode parameter URL sebelum kode aplikasi Anda melihatnya. Hindari mendecode parameter secara manual yang sudah didecode oleh framework — ini dapat menyebabkan masalah jika nilai asli mengandung urutan persen literal.
Encode Nilai untuk OAuth dan API Signing
String dasar signature OAuth 1.0 dan banyak algoritma signing API memerlukan percent encoding RFC 3986 yang ketat. Gunakan encodeURIComponent() dan kemudian ganti karakter yang tersisa yang tidak di-encode (seperti !, ', (, ), *) dengan padanan yang di-encode dengan persen jika spesifikasi mengharuskannya.

Pertanyaan yang Sering Diajukan

Apa itu URL encoding dan mengapa diperlukan?
URL encoding (percent encoding) mengonversi karakter yang tidak aman menjadi urutan hex %XX agar dapat dimasukkan dengan aman dalam URL. Karakter seperti spasi, ampersand, dan teks non-ASCII harus di-encode karena akan merusak struktur URL atau disalahartikan oleh browser dan server. Didefinisikan dalam RFC 3986, mekanisme ini bekerja karena URL hanya dapat mengandung rangkaian terbatas karakter US-ASCII — huruf (A-Z, a-z), digit (0-9), dan beberapa simbol seperti tanda hubung, garis bawah, titik, dan tilde. Karakter apa pun di luar rangkaian aman ini di-encode sebagai tanda persen (%) diikuti dua digit heksadesimal yang mewakili nilai byte karakter. Misalnya, spasi menjadi %20, garis miring menjadi %2F, dan ampersand menjadi %26. Karakter seperti &, =, ?, dan # memiliki makna struktural khusus dalam URL — mereka memisahkan parameter query, fragment, dan komponen lainnya. Tanpa encoding, tanda & literal dalam nilai parameter akan disalahartikan sebagai pemisah parameter, merusak struktur URL sepenuhnya.
Apa perbedaan antara encodeURI dan encodeURIComponent?
encodeURI() meng-encode URL lengkap sambil mempertahankan karakter struktural seperti :, /, ?, dan #. encodeURIComponent() meng-encode semuanya kecuali huruf, digit, dan - _ . ~, menjadikannya pilihan yang benar untuk meng-encode nilai parameter query individual. Gunakan encodeURIComponent() untuk kunci dan nilai parameter, dan encodeURI() hanya untuk URL lengkap. Misalnya, encodeURI('https://example.com/path name') menghasilkan 'https://example.com/path%20name', mempertahankan :// dan /. encodeURIComponent() jauh lebih agresif — ia meng-encode :, /, ?, #, &, dan =. Jika Anda menggunakan encodeURI() pada nilai parameter yang mengandung ampersand, & akan lolos tanpa di-encode dan disalahartikan sebagai pemisah parameter. encodeURIComponent() akan meng-encode-nya dengan benar sebagai %26. Mencampur keduanya adalah salah satu penyebab paling umum bug terkait URL dalam aplikasi web.
Apakah URL encoding sama dengan HTML encoding?
Tidak. URL encoding mengonversi karakter ke urutan hex %XX untuk URL (RFC 3986), sementara HTML encoding mengonversi karakter ke entitas seperti & dan < untuk dokumen HTML. Keduanya melayani tujuan yang berbeda dan tidak boleh saling ditukar. URL encoding untuk transportasi data dalam URL — spasi menjadi %20. HTML encoding untuk menampilkan konten dengan aman di HTML — ampersand menjadi &. Kesalahan umum adalah menerapkan HTML encoding pada parameter URL atau sebaliknya. Misalnya, meng-encode spasi sebagai   di URL tidak akan berhasil — harus %20 atau +. Demikian pula, menggunakan %3C dalam teks HTML alih-alih < tidak akan mencapai escaping yang diinginkan.
Mengapa URL saya rusak saat menggunakannya di perintah curl?
Shell menginterpretasikan karakter khusus URL sebelum curl melihatnya: & menjalankan perintah di background, ? memicu globbing, dan # memulai komentar. Perbaiki dengan membungkus URL dalam tanda kutip tunggal: curl 'https://example.com/api?key=value&page=2#section'. Tanda kutip tunggal mencegah shell menginterpretasikan karakter khusus apa pun. Ampersand (&) adalah penyebab paling umum — ia memberitahu shell untuk menjalankan perintah sebelumnya di background, memecah URL Anda di & pertama dan membuang semua yang setelahnya. Alternatifnya, Anda dapat meng-escape karakter individual dengan backslash, tetapi mengutip seluruh URL lebih sederhana dan tidak mudah salah. Jika URL Anda juga mengandung tanda kutip tunggal, gunakan tanda kutip ganda sebagai gantinya dan escape tanda dolar atau backtick yang tertanam.
Mengapa karakter Cina menjadi string seperti %E4%B8%AD di URL?
Karakter Cina pertama dikonversi ke byte UTF-8, kemudian setiap byte di-encode dengan persen sebagai %XX. Karakter 中 (U+4E2D) menjadi tiga byte UTF-8 (E4, B8, AD), menghasilkan %E4%B8%AD — itulah mengapa satu karakter Cina berkembang menjadi 9 karakter di URL. Proses tiga langkah ini — karakter ke code point Unicode, code point ke byte UTF-8, byte ke hex persen — berlaku untuk semua karakter non-ASCII. Emoji sering memerlukan 4 byte UTF-8 dan dengan demikian berkembang menjadi 12 karakter saat di-encode dengan persen. Ketika URL didecode, proses sebaliknya terjadi: nilai hex dikonversi kembali ke byte, byte diinterpretasikan sebagai UTF-8, dan karakter asli dipulihkan.
Haruskah saya meng-encode parameter redirect_uri OAuth?
Ya, selalu encode dengan encodeURIComponent(). redirect_uri adalah URL lengkap yang disematkan sebagai nilai parameter query, sehingga karakter khususnya (?, &, =) harus di-encode untuk mencegahnya disalahartikan sebagai bagian dari struktur URL luar. Misalnya, redirect_uri=https://myapp.com/callback?code=abc&state=xyz tanpa encoding akan menyebabkan server otorisasi melihat redirect_uri hanya sebagai https://myapp.com/callback?code=abc, sementara state=xyz akan diparse sebagai parameter terpisah dari URL luar. Versi yang di-encode dengan benar adalah redirect_uri=https%3A%2F%2Fmyapp.com%2Fcallback%3Fcode%3Dabc%26state%3Dxyz.
Apa perbedaan antara querystring Node.js dan URLSearchParams?
Gunakan URLSearchParams untuk proyek baru — ini standar WHATWG, cocok dengan perilaku browser, dan bekerja identik di Node.js dan browser. Modul querystring sudah legacy dan tidak lagi dikembangkan secara aktif. Perbedaan utama: URLSearchParams meng-encode spasi sebagai + (standar form encoding), menangani key berulang melalui getAll(), dan menyediakan interface iterable dengan metode entries(), keys(), dan values(). Modul querystring meng-encode spasi sebagai %20 dan memiliki kekhasan dalam penanganan array (key=1&key=2 menjadi { key: ['1', '2'] }). URLSearchParams sesuai standar dan direkomendasikan oleh dokumentasi Node.js itu sendiri.
Bagaimana cara meng-encode URL di Python, JavaScript, dan Java?
JavaScript: encodeURIComponent('hello world') menghasilkan 'hello%20world'. Python: urllib.parse.quote('hello world') menghasilkan 'hello%20world'. Java: URLEncoder.encode('hello world', StandardCharsets.UTF_8) menghasilkan 'hello+world' (ganti + dengan %20 untuk RFC 3986). Di JavaScript, gunakan encodeURIComponent() untuk nilai parameter dan encodeURI() untuk URL lengkap. Di Python 3, gunakan urllib.parse.quote() untuk segmen path dan urllib.parse.urlencode() untuk parameter query — urlencode({'q': 'hello world'}) menghasilkan 'q=hello+world'. Di Java, perhatikan bahwa URLEncoder menggunakan form encoding (spasi sebagai +). Untuk membangun URI lengkap, gunakan java.net.URI atau kelas URIBuilder dari Apache HttpClient.
Karakter mana yang tidak di-encode oleh URL encoding?
RFC 3986 mendefinisikan 66 karakter unreserved yang tidak pernah perlu di-encode: A-Z, a-z, 0-9, tanda hubung (-), titik (.), garis bawah (_), dan tilde (~). Ini dapat muncul secara literal di bagian URL mana pun. Karakter reserved — :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ;, dan = — diizinkan dalam peran struktural mereka (seperti ? untuk query string) tetapi harus di-encode dengan persen ketika digunakan sebagai data literal. Di JavaScript, encodeURIComponent() meng-encode semuanya kecuali A-Z a-z 0-9 - _ . ~ dan ! ' ( ) *, sementara encodeURI() juga mempertahankan karakter reserved yang berfungsi sebagai pembatas URL.
Apa perbedaan antara + dan %20 untuk meng-encode spasi?
Keduanya mewakili spasi, tetapi %20 adalah pilihan yang aman secara universal. Konvensi + berasal dari HTML form encoding (application/x-www-form-urlencoded) dan hanya berfungsi di query string. Di segmen path URL, + adalah tanda plus literal, bukan spasi. Jika ragu, gunakan %20. Encoding + berasal dari spesifikasi HTML — ketika browser mengirim form, spasi menjadi + dan karakter + itu sendiri menjadi %2B. Encoding %20 berasal dari RFC 3986 (sintaks URI), di mana setiap karakter non-unreserved di-encode sebagai tanda persen diikuti dua digit hex. %20 berfungsi di semua bagian URL: path, query, dan fragment.
Bagaimana URL encoding menangani emoji?
Satu emoji biasanya berkembang menjadi 12 karakter di URL. Emoji dikonversi ke byte UTF-8 (biasanya 4 byte), kemudian setiap byte di-encode dengan persen sebagai %XX. Misalnya, 🚀 (U+1F680) menjadi %F0%9F%9A%80. Sebagian besar emoji menggunakan code point dalam rentang U+1F000 hingga U+1FFFF atau lebih tinggi, yang memerlukan 4 byte di UTF-8. Beberapa emoji dengan modifier warna kulit atau urutan ZWJ terdiri dari beberapa code point dan dapat berkembang menjadi 30+ karakter saat di-encode. Meskipun ada ekspansi ini, encoding sepenuhnya reversibel — mendecode %F0%9F%9A%80 menghasilkan 🚀 dengan benar.
Bisakah URL encoding digunakan untuk enkripsi atau keamanan?
Tidak. URL encoding bukan enkripsi dan tidak memberikan keamanan sama sekali. Ini adalah transformasi yang sepenuhnya reversibel dan deterministik — siapa pun dapat mendecode string yang di-encode dengan persen secara instan tanpa kunci atau rahasia apa pun. Ini ada semata-mata untuk meng-escape karakter khusus agar transportasi URL aman. Memperlakukan URL encoding sebagai obfuskasi atau keamanan adalah kesalahpahaman yang berbahaya. Data sensitif seperti kata sandi, token, atau informasi pribadi harus dilindungi oleh HTTPS (enkripsi TLS dari seluruh permintaan), bukan oleh URL encoding. Selain itu, URL sering muncul di log server, riwayat browser, dan header referrer, jadi data sensitif umumnya harus dikirim di body permintaan bukan di URL.
Berapa panjang maksimum URL?
Tidak ada maksimum resmi, tetapi pertahankan URL di bawah 2.000 karakter untuk kompatibilitas maksimum. Sebagian besar browser mendukung ~2.048 karakter, Apache default ke 8.190 byte, dan Nginx ke 8.192 byte. Untuk data besar, gunakan permintaan POST sebagai gantinya. Spesifikasi HTTP (RFC 7230) tidak mendefinisikan panjang URL maksimum, tetapi batas praktis ada di setiap lapisan. Chrome dan Firefox dapat menangani URL melebihi 100.000 karakter, sementara IIS membatasi query string hingga 16.384 byte. CDN dan proxy mungkin memiliki batas yang lebih ketat. Ketika URL encoding memperluas karakter — terutama teks non-ASCII — URL yang tampak pendek dapat dengan cepat mendekati batas-batas ini.
Apa perbedaan antara URL dan URI?
URI (Uniform Resource Identifier) adalah string apa pun yang mengidentifikasi sumber daya. URL (Uniform Resource Locator) adalah URI yang juga menentukan cara mengaksesnya melalui protokol seperti https://. Semua URL adalah URI, tetapi tidak semua URI adalah URL — misalnya, URN seperti urn:isbn:0451450523 mengidentifikasi buku berdasarkan ISBN tetapi tidak memberitahu Anda di mana menemukannya. Dalam pengembangan web sehari-hari, istilah URL dan URI sering digunakan secara bergantian. Aturan encoding yang didefinisikan dalam RFC 3986 berlaku untuk keduanya. Fungsi JavaScript dinamai encodeURI/decodeURI, mencerminkan terminologi URI yang lebih luas, meskipun sebagian besar pengembang bekerja secara eksklusif dengan URL.