Menurut Berners-Lee (2005) Uniform Resource Identifier (URI) merupakan sebuah pengidentifikasi yang terdiri urutan karakter yang cocok dengan aturan-aturan tertentu yang digunakan untuk mengakses suatu resource.

Selain URI terdapat juga istilah Uniform Resource Locator (URL) dan Uniform Resource Name (URN). Banyak terdapat kebingungan tentang hal ini, secara sederhana URI dapat berupa URL atau juga dapat berupa URN. Analogi sederhananya URI diibaratkan sebuah mobil, dimana pada mobil terdapat kategori seperti sedan (URL) atau truk (URN). Jadi jika suatu URL valid maka URL tersebut dapat disebut juga URI yang valid. Hal yang sama berlaku untuk URN. Berikut ini adalah contoh beberapa URL.

  1. http://www.ietf.org/rfc/rfc2396.txt
  2. ftp://ftp.is.co.za/rfc/rfc1808.txt
  3. https://www.example.com/
  4. mailto:[email protected]
  5. http://en.wikipedia.org/wiki/Request_for_Comments#cite_note-6

Menurut Moats (1997) URN difungsikan sebagai media yang tetap, tidak terikat lokasi yang digunakan untuk pengidentifikasi resource. Skema URN dimaksudkan agar resource yang ditunjuk meskipun tidak ada atau sudah tidak tersedia skema tersebut tetap unik secara global dan bersifat tetap. Berikut ini adalah beberapa contoh dari URN.

  1. urn:isbn:0451450523
  2. urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C
  3. urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66

Karena URN jarang digunakan pada aplikasi berbasis web, maka selanjutnya penulis menitikberatkan penjelasan hanya pada URL. Zalewski (2012) memaparkan 8 (delapan) komponen lengkap dalam sebuah URL seperti yang terlihat pada gambar 1.

Bagian-bagian URI antara nomor satu sampai dengan delapan memiliki dua sifat yaitu wajib dan pilihan. Tabel berikut menjelaskan bagian-bagian yang terdapat pada gambar 1.

Nomor Keterangan Sifat
1 Nama protokol atau skema yang digunakan dan selalu diakhiri dengan titik dua, contoh http, https, mailto atau ftp. Nama protokol atau skema bersifat case-insensitive. Wajib
2 // (double slash) indikator dari sebuah URL yang memiliki hirarki. Pilihan
3 Data otentikasi yang berisi username dan password. Pilihan
4 Alamat server dari web yang ingin dibuka. Dapat berupa hostname atau alamat IP. Wajib
5 Nomor port yang digunakan oleh server. Untuk HTTP standar yang digunakan adalah 80, sedangkan untuk HTTPS adalah 443. Pilihan
6 Alamat hirarki path UNIX ke resource yang akan dibuka. Wajib
7 Parameter Query String. Pilihan
8 Pengidentifikasi fragment, biasa digunakan untuk menunjuk bagian tertentu pada resource (jika resource berupa dokumen HTTP). Pilihan

Terdapat beberapa karakter yang sudah dipesan (reserved) sehingga jika ingin digunakan pada sebuah URL maka perlu dilakukan URL encoding. URL encoding merupakan sebuah proses untuk mengubah karakter-karakter tertentu dengan tanda persen (%) diikuti dengan dua digit heksadesimal yang merepresentasikan nilai ASCII dari karakter tersebut. Karakter-karakter yang telah reserved pada URL yaitu: :, /, ?, #, [, ], dan @. Sebagai contoh “/” memiliki nomor ASCII 47 (2F dalam heksadesimal) jadi hasil encoding karakter tersebut adalah %2F.