Materi
Kelas Komputer Dasar sudah memecah URL untuk pembaca. Untuk pemrograman, nama bagiannya mengikuti RFC 3986: skema, authority (host dan port), path, query sesudah tanda tanya, dan fragment sesudah tanda pagar. Skema dan host tidak membedakan huruf; path dan query membedakannya, sehingga /Pesanan dan /pesanan boleh menunjuk sumber daya yang berbeda.
// https://api.kereta.example:8443/v2/jadwal?kota=Bogor#pagi
// skema : https
// host : api.kereta.example
// port : 8443
// path : /v2/jadwal
// query : kota=Bogor
// fragment : pagi
const u = new URL("https://api.kereta.example/v2/jadwal?kota=Bogor#pagi");
u.pathname; // "/v2/jadwal"
u.search; // "?kota=Bogor"
u.port; // "" — port bawaan https tidak ditulisPort yang tidak ditulis berarti port bawaan skemanya: 80 untuk http dan 443 untuk https (RFC 9110 §4.2). Fragment tidak pernah dikirim ke server; RFC 3986 §3.5 menyatakan fragment dipakai hanya oleh agen pengguna, misalnya untuk menggulir ke bagian halaman. Yang ditulis di baris permintaan disebut target permintaan: path ditambah query. RFC 9112 §3.2.1 menambahkan satu aturan: bila path kosong, klien wajib mengirim / sebagai path.
Di peramban dan Node.js, kelas URL memecah alamat untuk kita: new URL(alamat) memberi property protocol, hostname, port, pathname, search, dan hash, dan port bernilai teks kosong bila sama dengan port bawaan. Latihan kode di kelas ini sengaja ditulis dengan method teks biasa supaya aturannya terlihat; di proyek sungguhan, pakai URL.