Menghuraikan URI ialah perkara yang menarik, saya tidak sedar sebelum ini ia boleh menjadi begitu rumit.
URI
Penjelasan URI dalam Wikipedia adalah seperti berikut:
Dalam istilah komputer, Uniform Resource Identifier (URI) ialah rentetan yang digunakan untuk mengenal pasti nama sumber Internet. Pengenalpastian jenis ini membolehkan pengguna berinteraksi dengan sumber pada rangkaian (biasanya dirujuk sebagai World Wide Web) melalui protokol tertentu. URI ditakrifkan oleh skema yang menentukan sintaks dan protokol yang berkaitan.
Dipetik daripada penjelasan komposisi URI di Internet, dan ini boleh dilihat dalam analisis URI nanti.
URI secara amnya terdiri daripada tiga bahagian:
1. Mekanisme penamaan untuk mengakses sumber.
2. Nama hos tempat sumber disimpan.
3. Nama sumber itu sendiri, diwakili oleh laluan.
Atau boleh dikatakan kedua-duanya nampak konsisten.
Format URL terdiri daripada tiga bahagian berikut:
1. Perjanjian (atau kaedah perkhidmatan)
2. Alamat IP hos tempat sumber disimpan (kadangkala termasuk nombor port)
3. Alamat khusus sumber hos. , seperti direktori dan nama fail, dsb.
Penghuraian URI
"Menyelesaikan" URI bermakna menukar rujukan URI relatif kepada bentuk mutlaknya, atau membatalkan rujukan URI dengan cuba mendapatkan URI boleh dirujuk atau sumber yang diwakili oleh rujukan URI. Bahagian "menghuraikan" perisian pemprosesan dokumen selalunya menyediakan kedua-dua keupayaan.
Penghuraian URI JavaScript
Cuma ambil carian JS dalam blog sebagai contoh, berikut adalah URLnya,
http://www.jb51.net/search/?q=js&type=
Kemudian terdapat
var parser = document.createElement('a');
parser.href = "http://www.jb51.net/search/?q=js&type="
Kemudian kita boleh mengetahui protokolnya, nombor port, hos, alamat khusus, dsb.
parser.protocol;
parser.host;
parser.pathname;
parser.search;
Hasil yang dikembalikan ialah
protokol:http
hos:www.jb51.net
nama laluan:/search/
cari:?q=js&type=
Keputusan di atas ditambah bersama untuk membentuk URI yang lengkap. Saya hanya tidak memahami bahagian parser.search ini dengan baik Untuk nombor ?
Jika ia adalah URI untuk e-mel, andaikan URI ialah
mailto:h@jb51.net?subject=hello
Kemudian
var parser = document.createElement('a');
parser.href = "mailto:h@jb51.net?subject=hello";
> parser.protocol
"mailto:"
> parser.pathname
"h@jb51.net"
> parser.search
"?subject=hello"